@temple-wallet/extension-ads 9.0.0-dev.2 → 9.1.1-dev.1589.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -3,20 +3,20 @@
3
3
  var semver = require('semver');
4
4
  var lodash = require('lodash');
5
5
  var nanoid = require('nanoid');
6
- var ct = require('webextension-polyfill');
6
+ var mt = require('webextension-polyfill');
7
7
  var cryptoJs = require('crypto-js');
8
- var Mt = require('axios');
8
+ var It = require('axios');
9
9
 
10
10
  function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
11
11
 
12
- var ct__default = /*#__PURE__*/_interopDefault(ct);
13
- var Mt__default = /*#__PURE__*/_interopDefault(Mt);
12
+ var mt__default = /*#__PURE__*/_interopDefault(mt);
13
+ var It__default = /*#__PURE__*/_interopDefault(It);
14
14
 
15
- var Qe=Object.defineProperty,je=Object.defineProperties;var Je=Object.getOwnPropertyDescriptors;var ie=Object.getOwnPropertySymbols;var xe=Object.prototype.hasOwnProperty,be=Object.prototype.propertyIsEnumerable;var Ie=(e,t,r)=>t in e?Qe(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,w=(e,t)=>{for(var r in t||(t={}))xe.call(t,r)&&Ie(e,r,t[r]);if(ie)for(var r of ie(t))be.call(t,r)&&Ie(e,r,t[r]);return e},C=(e,t)=>je(e,Je(t));var _=(e,t)=>{var r={};for(var s in e)xe.call(e,s)&&t.indexOf(s)<0&&(r[s]=e[s]);if(e!=null&&ie)for(var s of ie(e))t.indexOf(s)<0&&be.call(e,s)&&(r[s]=e[s]);return r};var T=(e,t,r)=>new Promise((s,o)=>{var a=l=>{try{i(r.next(l));}catch(d){o(d);}},n=l=>{try{i(r.throw(l));}catch(d){o(d);}},i=l=>l.done?s(l.value):Promise.resolve(l.value).then(a,n);i((r=r.apply(e,t)).next());});process&&process.env&&process.env.NODE_ENV==="development";navigator.userAgent.includes("Macintosh");var _e=e=>!!e,Ze=300,O=(e=Ze)=>new Promise(t=>setTimeout(t,e));var A=class{};A.IS_MISES_BROWSER=!1,A.ADS_TW_WINDOW_URL="",A.TKEY_INPAGE_AD_URL="",A.SMALL_TKEY_INPAGE_AD_URL="",A.SWAP_TKEY_URL="",A.EXTERNAL_ADS_ACTIVITY_MESSAGE_TYPE="",A.personaIframePath="",A.getAdsStackIframeURL=()=>"",A.buildNativeAdsMeta=()=>[],A.pickNextAdMetadata=()=>{},A.bannerAdsMeta=[];var et=e=>{let{adsTwWindowUrl:t,tkeyInpageAdUrl:r,smallTkeyInpageAdUrl:s,swapTkeyUrl:o,externalAdsActivityMessageType:a,personaIframePath:n,getAdsStackIframeURL:i,buildNativeAdsMeta:l,bannerAdsMeta:d,extVersion:m,templePassphrase:h,isMisesBrowser:c,pickNextAdMetadata:u}=e;s&&(A.SMALL_TKEY_INPAGE_AD_URL=s),A.ADS_TW_WINDOW_URL=t,A.TKEY_INPAGE_AD_URL=r,A.SWAP_TKEY_URL=o,A.EXTERNAL_ADS_ACTIVITY_MESSAGE_TYPE=a,A.personaIframePath=n,A.getAdsStackIframeURL=i,A.buildNativeAdsMeta=l,A.pickNextAdMetadata=u,A.bannerAdsMeta=d,A.EXTENSION_VERSION=m,A.TEMPLE_PASSPHRASE=h,A.IS_MISES_BROWSER=c;};var G="twa",K="twa-native",$="twa-sibling-replacement";var oe="adRenderStart",ae="resize",te="ready",re="error",le="accelerometer; gyroscope",x="crypto",ce="background";var q=/[\d.]+(px)?$/,X=`[${G}]`,Le=`[${G}]:not([${K}])`,Ce=`[${K}]`,pe=(e,t)=>{let r=parseInt(e,10);return isNaN(r)||!q.test(e)?t:r},U=(e,t,r)=>{e.style[t]=`${Math.max(pe(e.style[t],0),r)}px`;},Q=e=>e.reduce((t,r)=>t+pe(r,0),0),j=e=>!!e.closest(X),de=e=>{var t;return !!((t=e.previousElementSibling)!=null&&t.getAttribute($))},se=e=>{let t=getComputedStyle(e),{x:r,right:s,width:o,height:a}=e.getBoundingClientRect(),n={width:o,height:a},i=["width","height"];for(let l of i){let d=t[l],m=e.getAttribute(l),h=Math.max(...[d,m].map(c=>pe(c!=null?c:"",-1)));h!==-1&&(n[l]=h),l==="width"&&r<0?n.width+=r:l==="width"&&s>window.innerWidth&&(n.width=window.innerWidth-r);}return n},H=(e,t,r=document)=>e?t?[...r.querySelectorAll(e)]:[r.querySelector(e)].filter(s=>!!s):[],B=(e,t)=>{let r=e;for(let s=0;s<t;s++){let o=r.parentElement;if(!o)return null;r=o;}return r},He=(e,t,r,s,o)=>{if(e<2&&t<2)return [];if(s)return A.buildNativeAdsMeta(e,t);let a=r==="permanent"||r==="slot-replacement"?A.bannerAdsMeta.filter(({source:l})=>l.shouldNotUseStrictContainerLimits):[],n=Math.max(e,...a.map(({dimensions:l})=>l.width)),i=Math.max(t,...a.map(({dimensions:l})=>l.height));return A.bannerAdsMeta.reduce((l,{dimensions:d,source:m},h)=>{let{shouldNotUseStrictContainerLimits:c=!1,categories:u=[x]}=m;if(u.every(S=>!o.includes(S)))return l;let{minContainerWidth:p,minContainerHeight:g,width:y,maxContainerWidth:f,maxContainerHeight:P}=d,E=!1;switch(r){case"permanent":E=c||n>=y&&(i>=g||i<2);break;case"slot-replacement":E=c||n>=p&&(i>=g||i<2);break;default:E=e>=p&&t>=g&&e<=f&&t<=P;}return E&&l.push(h),l},[])},tt=e=>{let{x:t,y:r,width:s,height:o}=e.getBoundingClientRect();return t!==0||r!==0||s!==0||o!==0},Ae=e=>{let{display:t}=window.getComputedStyle(e);switch(t){case"none":return !0;case"contents":return Array.from(e.children).every(r=>Ae(r));default:return !tt(e)}};var Ne=(e,t)=>{let{shouldHide:r,cssString:s,parentDepth:o,isMultiple:a}=e;H(s,a).forEach(n=>{let i=B(n,o);if(!i)return;let l=window.getComputedStyle(i);l.display!=="none"&&l.visibility!=="hidden"&&t.push({type:r?"hide-element":"remove-element",element:i});});};var De=(e,t,r)=>T(void 0,null,function*(){let{parentSelector:s,displayWidth:o}=e,{isMultiple:a,cssString:n,parentDepth:i}=s;if(o&&!semver.satisfies(semver.coerce(window.innerWidth),o))return [];let l=H(n,a).map(d=>B(d,i)).filter(d=>!!d);return yield Promise.all(l.map(d=>T(void 0,null,function*(){yield O(0),nt(d,e,t,r);}))),l}),ue=(e,t)=>{var r,s;return e?{width:(r=document.querySelector(e.width))!=null?r:t,height:(s=document.querySelector(e.height))!=null?s:t}:{width:t,height:t}},nt=(e,t,r,s)=>{var we;let Te=t,{shouldUseDivWrapper:o,divWrapperStyle:a,wrapperStyle:n,elementStyle:i,adSelector:l,insertionIndex:d,insertBeforeSelector:m,insertAfterSelector:h,insertionsCount:c=1,elementsToMeasureSelectors:u,stylesOverrides:p,shouldHideOriginal:g=!1,isNative:y,urlRegexes:f,parentSelector:P}=Te,E=_(Te,["shouldUseDivWrapper","divWrapperStyle","wrapperStyle","elementStyle","adSelector","insertionIndex","insertBeforeSelector","insertAfterSelector","insertionsCount","elementsToMeasureSelectors","stylesOverrides","shouldHideOriginal","isNative","urlRegexes","parentSelector"]),S=E.wrapperType?n:o?a:{display:"contents"},{isMultiple:I,cssString:M,parentDepth:v}=l,b=H(y?Ce:Le,!0,e).reduce((R,k)=>R.some(z=>z.contains(k))?R:[...R.filter(z=>!k.contains(z)),k],[]),L=b.filter(Ae),F=b.length-L.length,W=c-F;if(H(M,I,e).map(R=>B(R,v)).filter(R=>_e(R)&&!j(R)).forEach(R=>{var z;let k=window.getComputedStyle(R).display==="none";if(W<=0)(!g||!k)&&s.push({type:g?"hide-element":"remove-element",element:R});else {let Ke=ue(u,((z=R.parentElement)==null?void 0:z.children.length)===1?R.parentElement:R),qe=w({type:"replace-element",element:R,wrapperStyle:S,elementStyle:i,stylesOverrides:p,adCategories:[x]},E),Pe={type:"hide-element",element:R},Xe=w({type:"simple-insert-ad",wrapperStyle:S,elementStyle:i,parent:R.parentElement,insertionIndex:Array.from(R.parentElement.children).indexOf(R),isSiblingReplacement:!0,stylesOverrides:p,adCategories:[x]},E),ee=[],Me=de(R);g&&Me&&!k?ee=[Pe]:g&&!Me?ee=[Pe,Xe]:g||(ee=[qe]),ee.length>0&&r(Ke,"permanent",y,[x],...ee)&&W--;}}),W<=0)return;let D=-1,Y=e,Z={width:e,height:e},ve=m||h;if(ve){let R=e.querySelector(ve),k=R==null?void 0:R.parentElement;R&&k&&(Y=k,D=Array.from(e.children).indexOf(R)+(m?0:1),Z=ue(u,R));}else {let R=d!=null?d:0;D=R<0?Math.max(e.children.length+R,0):Math.min(R,e.children.length),Z=ue(u,(we=e.children[D])!=null?we:e);}if(D!==-1){let R=w({type:"simple-insert-ad",wrapperStyle:S,elementStyle:i,parent:Y,insertionIndex:D,isSiblingReplacement:!1,stylesOverrides:p,adCategories:[x]},E);r(Z,"permanent",y,[x],...Array(W).fill(R));}};var ot=["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"],at=lodash.memoize(e=>e.reduce((t,{dimensions:r})=>{let s=t.filter(({width:o,height:a})=>o<r.width||a<r.height);return (s.length===0||s.some(({width:o,height:a})=>o>r.width||a>r.height))&&s.push(r),s},[])),Oe=(e,t,r,s)=>T(void 0,null,function*(){let o=at(A.bannerAdsMeta),a=e.map(({selector:i,parentDepth:l,categories:d})=>H(i,!0).reduce((m,h)=>{var M;let c=(M=B(h,l))!=null?M:h,u=m.findIndex(({element:v})=>v.contains(c)),p=c.parentElement&&window.getComputedStyle(c.parentElement),{width:g,height:y}=se(c),f=s.some(v=>{var b;return v.type==="replace-all-children"||v.type==="simple-insert-ad"?v.parent.contains(c)||c.contains(v.parent):((b=v.element.parentElement)==null?void 0:b.contains(c))||c.contains(v.element)}),P=(p==null?void 0:p.display)==="none"||(p==null?void 0:p.visibility)==="hidden",E=u>=0&&m[u]instanceof HTMLAnchorElement,S=o.some(({width:v,height:b})=>g>=v&&y>=b);if(f||!S||P||E)return m;let I={element:c,categories:d};return u>=0?m.splice(u,1,I):m.some(({element:v})=>v.contains(c))||m.push(I),m},[])).flat(),n=t.map(({selector:i,parentDepth:l})=>H(i,!0).map(d=>B(d,l)).filter(d=>!!d)).flat();a=a.filter(({element:i})=>!n.includes(i)),yield Promise.all(a.map(d=>T(void 0,[d],function*({element:i,categories:l}){var p,g,y,f,P,E,S,I;yield O(0);let m=i.parentElement,{width:h,height:c}=window.getComputedStyle(i),u=q.test(h)&&q.test(c)?i:(g=(p=m==null?void 0:m.closest("div, article, aside, footer, header"))!=null?p:(m==null?void 0:m.tagName.toLowerCase())==="body"?void 0:m)!=null?g:i;if(!j(i)&&!i.querySelector(X)&&!s.some(M=>M.type==="simple-insert-ad"?!1:M.type==="replace-all-children"?M.parent.contains(i):M.element===i)){let M=(y=i.getAttribute("style"))!=null?y:"",v=Object.fromEntries(M.split(";").filter(Boolean).map(Y=>Y.split(":").map(Z=>Z.trim())));if((f=v.width)!=null&&f.match(/^0[a-z]/)||(P=v.height)!=null&&P.match(/^0[a-z]/))return;let b=window.getComputedStyle(i),L=w(w({},Object.fromEntries(ot.map(Y=>[Y,b.getPropertyValue(Y)]))),v),F={type:"hide-element",element:i},W={type:"simple-insert-ad",wrapperStyle:L,parent:(E=i.parentElement)!=null?E:document.body,insertionIndex:Array.from((I=(S=i.parentElement)==null?void 0:S.children)!=null?I:[]).indexOf(i),isSiblingReplacement:!0,shouldUseBlurredBackground:!0,adCategories:l},V,D=i.closest(`[${$}] + *`);D&&D!==i?V=[{type:"remove-element",element:D.previousElementSibling},F,W]:D?V=window.getComputedStyle(i).display==="none"?[]:[F]:V=[F,W],r({width:u,height:u},"provider-replacement",!1,l,...V);}})));});var Be=(e,t,r)=>T(void 0,null,function*(){let{cssString:s,isMultiple:o}=e.selector,a=H(s,o);yield Promise.all(a.map(n=>T(void 0,null,function*(){yield O(0),lt(n,e,t,r);})));}),lt=(e,t,r,s)=>{let{selector:{shouldUseDivWrapper:o,parentDepth:a,divWrapperStyle:n},stylesOverrides:i,shouldHideOriginal:l,isNative:d=!1}=t,m=B(e,a);if(!m||r.some(u=>u.contains(m))||j(m)||m.querySelector(X))return;let h={shouldUseDivWrapper:o,wrapperStyle:n},c;if(o&&l){let u=m.parentElement,p=window.getComputedStyle(m).display==="none",g=w({type:"simple-insert-ad",parent:u,insertionIndex:Array.from(u.children).indexOf(m),stylesOverrides:i==null?void 0:i.map(P=>{var E=P,{parentDepth:y}=E,f=_(E,["parentDepth"]);return C(w({},f),{parentDepth:y-1})}),isSiblingReplacement:!0,adCategories:[x]},h);c=[],p||c.push({type:"hide-element",element:m}),de(m)||c.push(g);}else if(o)c=[w({type:"replace-element",element:m,stylesOverrides:i==null?void 0:i.map(y=>{var f=y,{parentDepth:p}=f,g=_(f,["parentDepth"]);return C(w({},g),{parentDepth:p-1})}),adCategories:[x]},h)];else if(l){let u={type:"simple-insert-ad",parent:m,insertionIndex:0,stylesOverrides:i,isSiblingReplacement:!0,adCategories:[x],wrapperStyle:{display:"contents"}};c=Array.from(m.children).filter(p=>window.getComputedStyle(p).display!=="none").map(p=>({type:"hide-element",element:p})),m.querySelector(X)||c.push(u);}else c=[{type:"replace-all-children",parent:m,stylesOverrides:i,adCategories:[x],wrapperStyle:{display:"contents"}}];c.length>0&&s({width:m,height:m},"slot-replacement",d,[x],...c);};var dt=a=>T(void 0,[a],function*({providersSelectors:e,providersNegativeSelectors:t,adPlacesRules:r,permanentAdPlacesRules:s,elementsToHideOrRemoveRules:o}){let n=[],i=(d,m,h,c,...u)=>{if(u.length>0&&u.every(L=>L.type==="hide-element"||L.type==="remove-element"))return n.push(...u),!0;let{width:p}=se(d.width),{height:g}=se(d.height),{paddingLeft:y,paddingRight:f}=window.getComputedStyle(d.width),{paddingTop:P,paddingBottom:E}=window.getComputedStyle(d.height),S=Q([y,f]),I=S===p?p:p-S,M=Q([P,E]),v=M===g?g:g-M,b=He(I,v,m,h,c);return b.length?(n.push(...u.map(L=>L.type==="hide-element"||L.type==="remove-element"?L:C(w({},L),{adsMetadata:b,originalWidth:I,originalHeight:v}))),!0):!1},l=[];return yield Promise.all(o.map(d=>T(void 0,null,function*(){yield O(0),Ne(d,n);}))),yield Promise.all(s.map(d=>T(void 0,null,function*(){yield O(0),l=l.concat(yield De(d,i,n));}))),yield Promise.all(r.map(d=>T(void 0,null,function*(){yield O(0),yield Be(d,l,i);}))),yield Oe(e,t,i,n),n});var he=(a=>(a.Optimal="Optimal",a.SmartyAds="SmartyAds",a.HypeLab="HypeLab",a.Persona="Persona",a.Temple="Temple Wallet",a))(he||{});var ge=new Set,We=new Set,ke=new Set,Fe=e=>T(void 0,null,function*(){let t=e.id;if(!ge.has(t))return ge.add(t),new Promise((r,s)=>{let o=!1,a=n=>{var i,l;if(n.source===e.contentWindow)try{let d=typeof n.data=="string"?JSON.parse(n.data):n.data;if(d.id!==t)return;let m=e.offsetWidth-e.clientWidth,h=e.offsetHeight-e.clientHeight;switch(d.type){case te:r(d.adMetadata.source.providerName);break;case re:window.removeEventListener("message",a),e.style.display="none",s(new Error((i=d.reason)!=null?i:"Unknown error"));break;case oe:let{dimensions:c,source:u}=d.adMetadata;o=(l=u.native)!=null?l:!1;let{width:p,height:g}=c;p>0&&g>0&&(u.native?e.style.height=`${g}px`:(U(e,"width",p),U(e,"height",g)));break;case ae:let{width:y,height:f}=d;o?e.style.height=`${f+h}px`:(U(e,"width",y+m),U(e,"height",f+h));}}catch(d){console.error("Observing error:",d);}};window.addEventListener("message",a);}).then(r=>{if(We.has(t))return;We.add(t),pt(e)?Ve(t,r):mt(e,r);}).catch(r=>{throw console.error(r),r}).finally(()=>void ge.delete(t))}),mt=(e,t)=>{let r=new IntersectionObserver(s=>{s.some(o=>o.isIntersecting)&&(Ve(e.id,t),r.disconnect());},{threshold:.5});r.observe(e);},Ve=(e,t)=>{if(ke.has(e))return;ke.add(e);let r=window.parent.location.href;ct__default.default.runtime.sendMessage({type:A.EXTERNAL_ADS_ACTIVITY_MESSAGE_TYPE,url:r,provider:he[t]}).catch(s=>void console.error(s));},pt=e=>{let t=e.getBoundingClientRect(),r=window.visualViewport;if(!r)return !1;let s=Math.min(Math.max(0,t.x),r.width),o=Math.min(Math.max(0,t.x+t.width),r.width),a=Math.min(Math.max(0,t.y),r.height),n=Math.min(Math.max(0,t.y+t.height),r.height),i=t.width*t.height;return (o-s)*(n-a)/i>=.5};var ne=(e,t)=>{for(let r in t)e.style.setProperty(r,t[r]);};var ut=(e,t)=>{["width","height"].forEach(s=>{var a;let o=(a=e.style[s])!=null?a:"";q.test(o)&&parseInt(o,10)<t[s]&&e.style.removeProperty(s);});},ht=(e,t,r,s)=>T(void 0,null,function*(){let{elementStyle:o={},stylesOverrides:a=[],adsMetadata:n,wrapperType:i,originalHeight:l,originalWidth:d,shouldUseBlurredBackground:m,adCategories:h}=e;a.sort((E,S)=>E.parentDepth-S.parentDepth);let c,u=nanoid.nanoid(),p=document.createElement("iframe");p.loading="lazy",p.src=A.getAdsStackIframeURL(u,n,window.location.href,h),p.id=u,p.allow=le;let g=n[0],{dimensions:y}=typeof g=="number"?A.bannerAdsMeta[g]:g,f={width:m?Math.max(d,y.width):y.width,height:m?Math.max(l,y.height):y.height};p.style.width=i==="tbody"?"100%":`${f.width}px`,p.style.height=`${f.height}px`,p.style.border="none";for(let E in o)p.style.setProperty(E,o[E]);switch(p.setAttribute(G,"true"),ut(t,f),r.appendChild(p),e.type){case"replace-all-children":c=e.parent,e.parent.innerHTML="",e.parent.appendChild(t);break;case"replace-element":c=e.element.parentElement,e.element.replaceWith(t);break;default:let E=e.parent.children[e.insertionIndex];if(e.isSiblingReplacement){t.setAttribute($,"true");let S=new MutationObserver(I=>{I.some(v=>Array.from(v.removedNodes).includes(E))&&(t.remove(),S.disconnect());});S.observe(e.parent,{childList:!0});}c=e.parent,e.parent.insertBefore(t,E);break}if(i!=="tbody"){let{borderLeftWidth:E,borderRightWidth:S,borderTopWidth:I,borderBottomWidth:M}=window.getComputedStyle(p),{borderLeftWidth:v,borderRightWidth:b,borderTopWidth:L,borderBottomWidth:F}=window.getComputedStyle(t),W=Q([E,S,v,b]),V=Q([I,M,L,F]);p.style.width=`${f.width-W}px`,p.style.height=`${f.height-V}px`;}Fe(p).catch(s);let P=0;a.forEach(({parentDepth:E,style:S})=>{for(;E>P&&c;)c=c.parentElement,P++;c&&ne(c,S);});}),Ye=e=>T(void 0,null,function*(){let{wrapperStyle:t={},adsMetadata:r,wrapperType:s="div",colsAfter:o=0,colsBefore:a=0,colspan:n=1}=e,i=r.every(h=>typeof h=="object"),l,d;if(s==="div")l=document.createElement("div"),d=l;else {l=document.createElement("tbody");let h=document.createElement("tr");l.appendChild(h);for(let u=0;u<a;u++)h.appendChild(document.createElement("td"));let c=document.createElement("td");c.colSpan=n,h.appendChild(c),d=c;for(let u=0;u<o;u++)h.appendChild(document.createElement("td"));}l.setAttribute(G,"true"),i&&l.setAttribute(K,"true"),ne(l,t);let m=()=>{let h=document.createElement("div");h.setAttribute(G,"true"),i&&h.setAttribute(K,"true"),e.type==="simple-insert-ad"&&e.isSiblingReplacement&&h.setAttribute($,"true"),h.style.display="none",l.replaceWith(h);};yield ht(e,l,d,h=>{console.error("Failed to render ads",h),m();}).catch(h=>{throw console.error("Inserting an ad attempt error:",h),m(),h});});var gt=e=>Promise.allSettled(e.map(t=>T(void 0,null,function*(){t.type==="remove-element"?t.element.remove():t.type==="hide-element"?t.element.style.setProperty("display","none","important"):yield Ye(t);})));var Ee=(e,t,r=!1)=>{let s=document.createElement("div");s.style.width=`${e}px`,s.style.height=`${t}px`;let o=document.createElement("div");if(o.style.width=`${e}px`,o.style.height=`${t}px`,s.appendChild(o),r){let i=document.createElement("a");return i.href=A.SWAP_TKEY_URL,i.target="_blank",i.rel="noopener noreferrer",i.style.width=`${e}px`,i.style.height=`${t}px`,i.style.overflow="hidden",i.style.textOverflow="ellipsis",i.appendChild(document.createTextNode("TODO: Native TKEY ad")),o.appendChild(i),{element:s}}let a=document.createElement("a");a.href=A.SWAP_TKEY_URL,a.target="_blank",a.rel="noopener noreferrer",a.style.width="100%",a.style.height="100%",o.appendChild(a);let n=document.createElement("img");return n.src=e<=320?A.SMALL_TKEY_INPAGE_AD_URL:A.TKEY_INPAGE_AD_URL,n.style.width="100%",n.style.height="100%",a.appendChild(n),{element:s,creativeSet:{image:{url:n.src}}}};var fe=(e,t,{width:r,height:s},o)=>{let a=document.createElement("iframe");return a.id=e,a.src=ft(t,o,r,s,a.id),a.style.width=t.native?"100%":`${r}px`,a.style.height=`${s}px`,a.style.border="none",a.allow=le,{element:a}},ft=(e,t,r,s,o)=>{let{providerName:a,slug:n,native:i}=e,l=new URL(A.ADS_TW_WINDOW_URL);return l.searchParams.set("ap",a.toLowerCase()),i?l.searchParams.set("vh",String(s)):l.searchParams.set("w",String(r)),l.searchParams.set("h",String(s)),l.searchParams.set("p",n),l.searchParams.set("o",Rt(t)),o&&l.searchParams.set("id",o),l.toString()},Rt=e=>cryptoJs.AES.encrypt(e,A.TEMPLE_PASSPHRASE).toString();var Re=(e,t,{width:r,height:s})=>{let o=document.createElement("iframe"),a="";switch(t.providerName){case"Persona":a=A.personaIframePath;break;default:throw new Error(`Ads from ${t.providerName} are unavailable via extension iframe`)}let n=new URL(a);return n.searchParams.set("id",e),n.searchParams.set("slug",t.slug),o.src=n.toString(),o.id=e,o.style.width=`${r}px`,o.style.height=`${s}px`,o.style.border="none",{element:o}};var ye=class{constructor(t,r,s,o,a,n){this.id=t;this.origin=s;this.pageHasPlacesRules=o;this.adCategories=a;this.hypelabBlacklistedCampaignsSlugs=n;this.wasReady=!1;this.rootElement=document.getElementById("root");this.validAdsCounter=0;this.adsMetadata=r.map(i=>typeof i=="number"?A.bannerAdsMeta[i]:i);}startRendering(){if(this.adsMetadata.length===0){this.broadcastNoMoreAds();return}this.currentAdMetadata=A.pickNextAdMetadata(this.adsMetadata,this.currentAdMetadata,this.validAdsCounter,this.pageHasPlacesRules,this.adCategories);let t=this.currentAdMetadata;if(!t){this.broadcastNoMoreAds();return}this.broadcastMessage({id:this.id,type:oe,adMetadata:this.currentAdMetadata});let{element:r,creativeSet:s}=this.placeNewAd(t);r instanceof HTMLIFrameElement?this.listenToIframeMessages(r,t):this.handleValidAd({ad:{creative_set:s}});}listenToIframeMessages(t,r){let s=A.pickNextAdMetadata(this.adsMetadata,r,this.validAdsCounter,this.pageHasPlacesRules,this.adCategories);this.responseTimeout=setTimeout(()=>{console.error(`Timeout exceeded for ${this.id}, ad source: ${JSON.stringify(r.source)}`),this.handleInvalidAd();},(s?1e4:2e4)*(A.IS_MISES_BROWSER?2:1)),this.messageListener=o=>{var a;if(o.source===t.contentWindow)try{let n=typeof o.data=="string"?JSON.parse(o.data):o.data;switch(n.type){case te:if(r.source.providerName==="HypeLab"&&this.hypelabBlacklistedCampaignsSlugs.includes((a=n.ad)==null?void 0:a.campaign_slug)&&s){this.handleInvalidAd();break}this.handleValidAd(n);break;case re:this.wasReady||this.handleInvalidAd();break;case ae:let{width:i,height:l}=n;i>0&&l>0&&(r.source.native?t.style.height=`${l}px`:(U(t,"width",i),U(t,"height",l)),this.broadcastMessage(C(w({},n),{id:this.id})));}}catch(n){console.error("Message handling error:",n);}},window.addEventListener("message",this.messageListener);}handleInvalidAd(){this.removeMessageListener(),this.clearResponseTimeout(),this.startRendering(),this.validAdsCounter=0;}removeMessageListener(){this.messageListener&&(window.removeEventListener("message",this.messageListener),this.messageListener=void 0);}placeNewAd(t){document.body.style.backgroundColor=t.source.native?"transparent":"#F2F2F2";let{source:r,dimensions:s}=t,o;switch(r.providerName){case"Temple":o=Ee(s.width,s.height,r.native);break;case"HypeLab":case"SmartyAds":o=fe(this.id,r,s,this.origin);break;default:o=Re(this.id,r,s);}let{element:a}=o,n=document.getElementById("temple-label");return this.rootElement.replaceChildren(a),r.native?n.removeAttribute("active"):n.setAttribute("active",""),o}updateBackground(t,r={}){let s=document.getElementById(ce);if(t.native&&s&&this.rootElement.removeChild(s),!t.native){try{let{image:o,video:a}=r,n;if(o?(n=document.createElement("img"),n.src=o.url,n.alt=""):a&&(n=document.createElement("video"),n.src=a.url,n.autoplay=!0,n.preload="auto",n.playsInline=!0,n.muted=!0,n.loop=!0),!n&&s&&this.rootElement.removeChild(s),!n)return;n.id=ce,n.style.zIndex="-1",ne(n,{position:"absolute",top:"0px",left:"0px",right:"0px",bottom:"0px",width:"100%",height:"100%","object-fit":"cover",filter:"blur(12px)"}),s?this.rootElement.replaceChild(n,s):this.rootElement.prepend(n);}catch(o){console.error(o);}document.body.style.backgroundColor="transparent";}}broadcastMessage(t){window.parent.postMessage(JSON.stringify(t),"*");}broadcastNoMoreAds(){this.broadcastMessage({id:this.id,type:re,reason:"No more ads to render"});}clearResponseTimeout(){this.responseTimeout!==void 0&&(clearTimeout(this.responseTimeout),this.responseTimeout=void 0);}handleValidAd(t){var s;let r=this.currentAdMetadata;r&&(this.wasReady||(this.wasReady=!0,this.broadcastMessage({id:this.id,type:te,adMetadata:r})),this.validAdsCounter++,this.clearResponseTimeout(),this.updateBackground(r.source,(s=t.ad)==null?void 0:s.creative_set));}},yt=(e,t,r,s=!1,o,a)=>{try{new ye(e,t,r,s,o,a).startRendering();}catch(n){console.error("Error while rendering ads stack:",n);}};var St=(e,t)=>{let{adPlacesRulesForAllDomains:r,providersRulesForAllDomains:s,providersSelectors:o,providersNegativeSelectors:a={},providersToReplaceAtAllSites:n,permanentAdPlacesRulesForAllDomains:i,permanentNativeAdPlacesRulesForAllDomains:l={},adsReplaceUrlsBlacklist:d=[],elementsToHideOrRemoveRules:m={},providersCategories:h={},blacklistedHypelabCampaignsSlugs:c=[],timestamp:u}=t,p=typeof e=="string"?e:e.href,{hostname:g}=new URL(p);if(d.some(P=>new RegExp(P).test(p)))return {adPlacesRules:[],permanentAdPlacesRules:[],providersSelectors:[],providersNegativeSelectors:[],elementsToHideOrRemoveRules:[],blacklistedHypelabCampaignsSlugs:c,timestamp:u};let y=p.replace(/#.*$/,""),f=P=>{let E=P.source.includes("#")?p:y;return P.test(E)};return {adPlacesRules:Tt(g,f,r),permanentAdPlacesRules:wt(g,f,i,l),providersSelectors:ze(g,f,s,o,n,h),providersNegativeSelectors:ze(g,f,s,a,n,h),elementsToHideOrRemoveRules:vt(g,f,m),blacklistedHypelabCampaignsSlugs:c,timestamp:u}},vt=(e,t,r)=>{var s;return ((s=r[e])!=null?s:[]).map(n=>{var i=n,{urlRegexes:o}=i,a=_(i,["urlRegexes"]);return C(w({},a),{urlRegexes:o.map(l=>new RegExp(l))})}).filter(({urlRegexes:o})=>o.some(t))},Tt=(e,t,r)=>{var a;return ((a=r[e])!=null?a:[]).map(l=>{var d=l,{urlRegexes:n}=d,i=_(d,["urlRegexes"]);return C(w({},i),{urlRegexes:n.map(m=>new RegExp(m))})}).reduce((n,m)=>{var h=m,{urlRegexes:i,selector:l}=h,d=_(h,["urlRegexes","selector"]);if(!i.some(t))return n;let g=l,{cssString:c}=g,u=_(g,["cssString"]),p=n.findIndex(P=>{var E=P,{selector:y}=E,f=_(E,["selector"]);let M=y,I=_(M,["cssString"]);return lodash.isEqual(u,I)&&lodash.isEqual(d,f)});return p===-1?n.push(w({selector:l},d)):n[p].selector.cssString+=", ".concat(c),n},[])},$e=e=>a=>{var n=a,{urlRegexes:t,elementToMeasureSelector:r,elementsToMeasureSelectors:s}=n,o=_(n,["urlRegexes","elementToMeasureSelector","elementsToMeasureSelectors"]);return C(w({},o),{urlRegexes:t.map(i=>new RegExp(i)),isNative:e,elementsToMeasureSelectors:s!=null?s:r?{width:r,height:r}:void 0})},wt=(e,t,r,s={})=>{var i,l;let o=(i=r[e])!=null?i:[],a=(l=s[e])!=null?l:[];return o.map($e(!1)).concat(a.map($e(!0))).filter(({urlRegexes:d})=>d.some(t))};function Pt(e){let t="";return e.forEach(r=>{t+=r+", ";}),t&&(t=t.slice(0,-2)),t}var ze=(e,t,r,s,o,a)=>{var h;let i=((h=r[e])!=null?h:[]).map(p=>{var g=p,{urlRegexes:c}=g,u=_(g,["urlRegexes"]);return C(w({},u),{urlRegexes:c.map(y=>new RegExp(y))})}).filter(({urlRegexes:c})=>c.some(t)),l=new Set,d={},m=c=>{var g,y;if(l.has(c))return;let u=((g=a[c])!=null?g:[x]).join("|");((y=s[c])!=null?y:[]).forEach(f=>{let{selector:P,parentDepth:E}=typeof f=="string"?{selector:f,parentDepth:0}:f;d[u]||(d[u]={});let S=d[u];S[E]||(S[E]=new Set),S[E].add(P);}),l.add(c);};return o.forEach(m),i.forEach(({providers:c})=>c.forEach(m)),Object.entries(d).map(([c,u])=>Object.entries(u).map(([p,g])=>({parentDepth:Number(p),selector:Pt(g),categories:c.split("|")}))).flat()};var N=e=>(...t)=>T(void 0,null,function*(){let{data:r}=yield e(...t);return r}),Se=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.getProvidersCategories=N(()=>this.api.get("/slise-ad-rules/providers/categories"));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.getNegativeSelectorsForAllProviders=N(()=>this.api.get("/slise-ad-rules/providers/negative-selectors",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.getElementsToHideOrRemoveRules=N(()=>this.api.get("/slise-ad-rules/elements-to-hide-or-remove",this.getAdVersionRequestConfig()));this.getBlacklistedHypelabCampaignsSlugs=N(()=>this.api.get("/temple-wallet-ads/hypelab-campaigns-blacklist"));this.getAllRules=()=>T(this,null,function*(){let[t,r,s,o,a,n,i,l,d,m,h]=yield Promise.all([this.getAdPlacesRulesForAllDomains(),this.getProvidersRulesForAllDomains(),this.getSelectorsForAllProviders(),this.getProvidersToReplaceAtAllSites(),this.getPermanentAdPlacesRulesForAllDomains(),this.getPermanentNativeAdPlacesRulesForAllDomains(),this.getAdsReplaceUrlsBlacklist(),this.getNegativeSelectorsForAllProviders(),this.getElementsToHideOrRemoveRules(),this.getProvidersCategories(),this.getBlacklistedHypelabCampaignsSlugs()]);return {adPlacesRulesForAllDomains:t,providersRulesForAllDomains:r,providersSelectors:s,providersToReplaceAtAllSites:o,permanentAdPlacesRulesForAllDomains:a,permanentNativeAdPlacesRulesForAllDomains:n,adsReplaceUrlsBlacklist:i,providersNegativeSelectors:l,elementsToHideOrRemoveRules:d,providersCategories:m,blacklistedHypelabCampaignsSlugs:h,timestamp:Date.now()}});this.api=Mt__default.default.create({baseURL:new URL("/api",t).href,adapter:"fetch"});}getAdVersionRequestConfig(){return {params:{extVersion:A.EXTENSION_VERSION,isMisesBrowser:A.IS_MISES_BROWSER}}}};
15
+ var je=Object.defineProperty,Je=Object.defineProperties;var Ze=Object.getOwnPropertyDescriptors;var ie=Object.getOwnPropertySymbols;var _e=Object.prototype.hasOwnProperty,be=Object.prototype.propertyIsEnumerable;var xe=(e,t,r)=>t in e?je(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,w=(e,t)=>{for(var r in t||(t={}))_e.call(t,r)&&xe(e,r,t[r]);if(ie)for(var r of ie(t))be.call(t,r)&&xe(e,r,t[r]);return e},C=(e,t)=>Je(e,Ze(t));var L=(e,t)=>{var r={};for(var s in e)_e.call(e,s)&&t.indexOf(s)<0&&(r[s]=e[s]);if(e!=null&&ie)for(var s of ie(e))t.indexOf(s)<0&&be.call(e,s)&&(r[s]=e[s]);return r};var v=(e,t,r)=>new Promise((s,o)=>{var a=l=>{try{i(r.next(l));}catch(d){o(d);}},n=l=>{try{i(r.throw(l));}catch(d){o(d);}},i=l=>l.done?s(l.value):Promise.resolve(l.value).then(a,n);i((r=r.apply(e,t)).next());});process&&process.env&&process.env.NODE_ENV==="development";navigator.userAgent.includes("Macintosh");var Le=e=>!!e,et=300,B=(e=et)=>new Promise(t=>setTimeout(t,e));var A=class{};A.IS_MISES_BROWSER=!1,A.ADS_TW_WINDOW_URL="",A.TKEY_INPAGE_AD_URL="",A.SMALL_TKEY_INPAGE_AD_URL="",A.SWAP_TKEY_URL="",A.EXTERNAL_ADS_ACTIVITY_MESSAGE_TYPE="",A.personaIframePath="",A.getAdsStackIframeURL=()=>"",A.buildNativeAdsMeta=()=>[],A.pickNextAdMetadata=()=>{},A.bannerAdsMeta=[];var tt=e=>{let{adsTwWindowUrl:t,tkeyInpageAdUrl:r,smallTkeyInpageAdUrl:s,swapTkeyUrl:o,externalAdsActivityMessageType:a,personaIframePath:n,getAdsStackIframeURL:i,buildNativeAdsMeta:l,bannerAdsMeta:d,extVersion:m,templePassphrase:h,isMisesBrowser:c,pickNextAdMetadata:u}=e;s&&(A.SMALL_TKEY_INPAGE_AD_URL=s),A.ADS_TW_WINDOW_URL=t,A.TKEY_INPAGE_AD_URL=r,A.SWAP_TKEY_URL=o,A.EXTERNAL_ADS_ACTIVITY_MESSAGE_TYPE=a,A.personaIframePath=n,A.getAdsStackIframeURL=i,A.buildNativeAdsMeta=l,A.pickNextAdMetadata=u,A.bannerAdsMeta=d,A.EXTENSION_VERSION=m,A.TEMPLE_PASSPHRASE=h,A.IS_MISES_BROWSER=c;};var G="twa",K="twa-native",oe="twa-hidden",$="twa-sibling-replacement";var ae="adRenderStart",le="resize",te="ready",re="error",de="accelerometer; gyroscope",x="crypto",me="background";var q=/[\d.]+(px)?$/,X=`[${G}]`,Ce=`[${G}]:not([${K}])`,He=`[${K}]`,Ae=(e,t)=>{let r=parseInt(e,10);return isNaN(r)||!q.test(e)?t:r},U=(e,t,r)=>{e.style[t]=`${Math.max(Ae(e.style[t],0),r)}px`;},Q=e=>e.reduce((t,r)=>t+Ae(r,0),0),j=e=>!!e.closest(X),ce=e=>{var t;return !!((t=e.previousElementSibling)!=null&&t.getAttribute($))},se=e=>{let t=getComputedStyle(e),{x:r,right:s,width:o,height:a}=e.getBoundingClientRect(),n={width:o,height:a},i=["width","height"];for(let l of i){let d=t[l],m=e.getAttribute(l),h=Math.max(...[d,m].map(c=>Ae(c!=null?c:"",-1)));h!==-1&&(n[l]=h),l==="width"&&r<0?n.width+=r:l==="width"&&s>window.innerWidth&&(n.width=window.innerWidth-r);}return n},H=(e,t,r=document)=>e?t?[...r.querySelectorAll(e)]:[r.querySelector(e)].filter(s=>!!s):[],O=(e,t)=>{let r=e;for(let s=0;s<t;s++){let o=r.parentElement;if(!o)return null;r=o;}return r},Ne=(e,t,r,s,o)=>{if(e<2&&t<2)return [];if(s)return A.buildNativeAdsMeta(e,t);let a=r==="permanent"||r==="slot-replacement"?A.bannerAdsMeta.filter(({source:l})=>l.shouldNotUseStrictContainerLimits):[],n=Math.max(e,...a.map(({dimensions:l})=>l.width)),i=Math.max(t,...a.map(({dimensions:l})=>l.height));return A.bannerAdsMeta.reduce((l,{dimensions:d,source:m},h)=>{let{shouldNotUseStrictContainerLimits:c=!1,categories:u=[x]}=m;if(u.every(S=>!o.includes(S)))return l;let{minContainerWidth:p,minContainerHeight:g,width:y,maxContainerWidth:f,maxContainerHeight:P}=d,E=!1;switch(r){case"permanent":E=c||n>=y&&(i>=g||i<2);break;case"slot-replacement":E=c||n>=p&&(i>=g||i<2);break;default:E=e>=p&&t>=g&&e<=f&&t<=P;}return E&&l.push(h),l},[])},rt=e=>{let{x:t,y:r,width:s,height:o}=e.getBoundingClientRect();return t!==0||r!==0||s!==0||o!==0},ue=e=>{let{display:t}=window.getComputedStyle(e);switch(t){case"none":return !0;case"contents":return Array.from(e.children).every(r=>ue(r));default:return !rt(e)}};var De=(e,t)=>{let{shouldHide:r,cssString:s,parentDepth:o,isMultiple:a}=e;H(s,a).forEach(n=>{let i=O(n,o);if(!i)return;let l=window.getComputedStyle(i);l.display!=="none"&&l.visibility!=="hidden"&&t.push({type:r?"hide-element":"remove-element",element:i});});};var Be=(e,t,r)=>v(void 0,null,function*(){let{parentSelector:s,displayWidth:o}=e,{isMultiple:a,cssString:n,parentDepth:i}=s;if(o&&!semver.satisfies(semver.coerce(window.innerWidth),o))return [];let l=H(n,a).map(d=>O(d,i)).filter(d=>!!d);return yield Promise.all(l.map(d=>v(void 0,null,function*(){yield B(0),it(d,e,t,r);}))),l}),he=(e,t)=>{var r,s;return e?{width:(r=document.querySelector(e.width))!=null?r:t,height:(s=document.querySelector(e.height))!=null?s:t}:{width:t,height:t}},it=(e,t,r,s)=>{var Pe;let we=t,{shouldUseDivWrapper:o,divWrapperStyle:a,wrapperStyle:n,elementStyle:i,adSelector:l,insertionIndex:d,insertBeforeSelector:m,insertAfterSelector:h,insertionsCount:c=1,elementsToMeasureSelectors:u,stylesOverrides:p,shouldHideOriginal:g=!1,isNative:y,urlRegexes:f,parentSelector:P}=we,E=L(we,["shouldUseDivWrapper","divWrapperStyle","wrapperStyle","elementStyle","adSelector","insertionIndex","insertBeforeSelector","insertAfterSelector","insertionsCount","elementsToMeasureSelectors","stylesOverrides","shouldHideOriginal","isNative","urlRegexes","parentSelector"]),S=E.wrapperType?n:o?a:{display:"contents"},{isMultiple:I,cssString:M,parentDepth:T}=l,_=H(y?He:Ce,!0,e).reduce((R,k)=>R.some(z=>z.contains(k))?R:[...R.filter(z=>!k.contains(z)),k],[]),b=_.filter(ue);if(b.some(R=>R.attributes.getNamedItem(oe)))return;let F=_.length-b.length,W=c-F;if(H(M,I,e).map(R=>O(R,T)).filter(R=>Le(R)&&!j(R)).forEach(R=>{var z;let k=window.getComputedStyle(R).display==="none";if(W<=0)(!g||!k)&&s.push({type:g?"hide-element":"remove-element",element:R});else {let qe=he(u,((z=R.parentElement)==null?void 0:z.children.length)===1?R.parentElement:R),Xe=w({type:"replace-element",element:R,wrapperStyle:S,elementStyle:i,stylesOverrides:p,adCategories:[x]},E),Me={type:"hide-element",element:R},Qe=w({type:"simple-insert-ad",wrapperStyle:S,elementStyle:i,parent:R.parentElement,insertionIndex:Array.from(R.parentElement.children).indexOf(R),isSiblingReplacement:!0,stylesOverrides:p,adCategories:[x]},E),ee=[],Ie=ce(R);g&&Ie&&!k?ee=[Me]:g&&!Ie?ee=[Me,Qe]:g||(ee=[Xe]),ee.length>0&&r(qe,"permanent",y,[x],...ee)&&W--;}}),W<=0)return;let D=-1,Y=e,Z={width:e,height:e},ve=m||h;if(ve){let R=e.querySelector(ve),k=R==null?void 0:R.parentElement;R&&k&&(Y=k,D=Array.from(e.children).indexOf(R)+(m?0:1),Z=he(u,R));}else {let R=d!=null?d:0;D=R<0?Math.max(e.children.length+R,0):Math.min(R,e.children.length),Z=he(u,(Pe=e.children[D])!=null?Pe:e);}if(D!==-1){let R=w({type:"simple-insert-ad",wrapperStyle:S,elementStyle:i,parent:Y,insertionIndex:D,isSiblingReplacement:!1,stylesOverrides:p,adCategories:[x]},E);r(Z,"permanent",y,[x],...Array(W).fill(R));}};var at=["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"],lt=lodash.memoize(e=>e.reduce((t,{dimensions:r})=>{let s=t.filter(({width:o,height:a})=>o<r.width||a<r.height);return (s.length===0||s.some(({width:o,height:a})=>o>r.width||a>r.height))&&s.push(r),s},[])),Oe=(e,t,r,s)=>v(void 0,null,function*(){let o=lt(A.bannerAdsMeta),a=e.map(({selector:i,parentDepth:l,categories:d})=>H(i,!0).reduce((m,h)=>{var M;let c=(M=O(h,l))!=null?M:h,u=m.findIndex(({element:T})=>T.contains(c)),p=c.parentElement&&window.getComputedStyle(c.parentElement),{width:g,height:y}=se(c),f=s.some(T=>{var _;return T.type==="replace-all-children"||T.type==="simple-insert-ad"?T.parent.contains(c)||c.contains(T.parent):((_=T.element.parentElement)==null?void 0:_.contains(c))||c.contains(T.element)}),P=(p==null?void 0:p.display)==="none"||(p==null?void 0:p.visibility)==="hidden",E=u>=0&&m[u]instanceof HTMLAnchorElement,S=o.some(({width:T,height:_})=>g>=T&&y>=_);if(f||!S||P||E)return m;let I={element:c,categories:d};return u>=0?m.splice(u,1,I):m.some(({element:T})=>T.contains(c))||m.push(I),m},[])).flat(),n=t.map(({selector:i,parentDepth:l})=>H(i,!0).map(d=>O(d,l)).filter(d=>!!d)).flat();a=a.filter(({element:i})=>!n.includes(i)),yield Promise.all(a.map(d=>v(void 0,[d],function*({element:i,categories:l}){var p,g,y,f,P,E,S,I;yield B(0);let m=i.parentElement,{width:h,height:c}=window.getComputedStyle(i),u=q.test(h)&&q.test(c)?i:(g=(p=m==null?void 0:m.closest("div, article, aside, footer, header"))!=null?p:(m==null?void 0:m.tagName.toLowerCase())==="body"?void 0:m)!=null?g:i;if(!j(i)&&!i.querySelector(X)&&!s.some(M=>M.type==="simple-insert-ad"?!1:M.type==="replace-all-children"?M.parent.contains(i):M.element===i)){let M=(y=i.getAttribute("style"))!=null?y:"",T=Object.fromEntries(M.split(";").filter(Boolean).map(Y=>Y.split(":").map(Z=>Z.trim())));if((f=T.width)!=null&&f.match(/^0[a-z]/)||(P=T.height)!=null&&P.match(/^0[a-z]/))return;let _=window.getComputedStyle(i),b=w(w({},Object.fromEntries(at.map(Y=>[Y,_.getPropertyValue(Y)]))),T),F={type:"hide-element",element:i},W={type:"simple-insert-ad",wrapperStyle:b,parent:(E=i.parentElement)!=null?E:document.body,insertionIndex:Array.from((I=(S=i.parentElement)==null?void 0:S.children)!=null?I:[]).indexOf(i),isSiblingReplacement:!0,shouldUseBlurredBackground:!0,adCategories:l},V,D=i.closest(`[${$}] + *`);D&&D!==i?V=[{type:"remove-element",element:D.previousElementSibling},F,W]:D?V=window.getComputedStyle(i).display==="none"?[]:[F]:V=[F,W],r({width:u,height:u},"provider-replacement",!1,l,...V);}})));});var We=(e,t,r)=>v(void 0,null,function*(){let{cssString:s,isMultiple:o}=e.selector,a=H(s,o);yield Promise.all(a.map(n=>v(void 0,null,function*(){yield B(0),dt(n,e,t,r);})));}),dt=(e,t,r,s)=>{let{selector:{shouldUseDivWrapper:o,parentDepth:a,divWrapperStyle:n},stylesOverrides:i,shouldHideOriginal:l,isNative:d=!1}=t,m=O(e,a);if(!m||r.some(u=>u.contains(m))||j(m)||m.querySelector(X))return;let h={shouldUseDivWrapper:o,wrapperStyle:n},c;if(o&&l){let u=m.parentElement,p=window.getComputedStyle(m).display==="none",g=w({type:"simple-insert-ad",parent:u,insertionIndex:Array.from(u.children).indexOf(m),stylesOverrides:i==null?void 0:i.map(P=>{var E=P,{parentDepth:y}=E,f=L(E,["parentDepth"]);return C(w({},f),{parentDepth:y-1})}),isSiblingReplacement:!0,adCategories:[x]},h);c=[],p||c.push({type:"hide-element",element:m}),ce(m)||c.push(g);}else if(o)c=[w({type:"replace-element",element:m,stylesOverrides:i==null?void 0:i.map(y=>{var f=y,{parentDepth:p}=f,g=L(f,["parentDepth"]);return C(w({},g),{parentDepth:p-1})}),adCategories:[x]},h)];else if(l){let u={type:"simple-insert-ad",parent:m,insertionIndex:0,stylesOverrides:i,isSiblingReplacement:!0,adCategories:[x],wrapperStyle:{display:"contents"}};c=Array.from(m.children).filter(p=>window.getComputedStyle(p).display!=="none").map(p=>({type:"hide-element",element:p})),m.querySelector(X)||c.push(u);}else c=[{type:"replace-all-children",parent:m,stylesOverrides:i,adCategories:[x],wrapperStyle:{display:"contents"}}];c.length>0&&s({width:m,height:m},"slot-replacement",d,[x],...c);};var ct=a=>v(void 0,[a],function*({providersSelectors:e,providersNegativeSelectors:t,adPlacesRules:r,permanentAdPlacesRules:s,elementsToHideOrRemoveRules:o}){let n=[],i=(d,m,h,c,...u)=>{if(u.length>0&&u.every(b=>b.type==="hide-element"||b.type==="remove-element"))return n.push(...u),!0;let{width:p}=se(d.width),{height:g}=se(d.height),{paddingLeft:y,paddingRight:f}=window.getComputedStyle(d.width),{paddingTop:P,paddingBottom:E}=window.getComputedStyle(d.height),S=Q([y,f]),I=S===p?p:p-S,M=Q([P,E]),T=M===g?g:g-M,_=Ne(I,T,m,h,c);return _.length?(n.push(...u.map(b=>b.type==="hide-element"||b.type==="remove-element"?b:C(w({},b),{adsMetadata:_,originalWidth:I,originalHeight:T}))),!0):!1},l=[];return yield Promise.all(o.map(d=>v(void 0,null,function*(){yield B(0),De(d,n);}))),yield Promise.all(s.map(d=>v(void 0,null,function*(){yield B(0),l=l.concat(yield Be(d,i,n));}))),yield Promise.all(r.map(d=>v(void 0,null,function*(){yield B(0),yield We(d,l,i);}))),yield Oe(e,t,i,n),n});var ge=(a=>(a.Optimal="Optimal",a.SmartyAds="SmartyAds",a.HypeLab="HypeLab",a.Persona="Persona",a.Temple="Temple Wallet",a))(ge||{});var Ee=new Set,ke=new Set,Ue=new Set,Ve=e=>v(void 0,null,function*(){let t=e.id;if(!Ee.has(t))return Ee.add(t),new Promise((r,s)=>{let o=!1,a=n=>{var i,l;if(n.source===e.contentWindow)try{let d=typeof n.data=="string"?JSON.parse(n.data):n.data;if(d.id!==t)return;let m=e.offsetWidth-e.clientWidth,h=e.offsetHeight-e.clientHeight;switch(d.type){case te:r(d.adMetadata.source.providerName);break;case re:window.removeEventListener("message",a),e.style.display="none",s(new Error((i=d.reason)!=null?i:"Unknown error"));break;case ae:let{dimensions:c,source:u}=d.adMetadata;o=(l=u.native)!=null?l:!1;let{width:p,height:g}=c;p>0&&g>0&&(u.native?e.style.height=`${g}px`:(U(e,"width",p),U(e,"height",g)));break;case le:let{width:y,height:f}=d;o?e.style.height=`${f+h}px`:(U(e,"width",y+m),U(e,"height",f+h));}}catch(d){console.error("Observing error:",d);}};window.addEventListener("message",a);}).then(r=>{if(ke.has(t))return;ke.add(t),At(e)?Ye(t,r):pt(e,r);}).catch(r=>{throw console.error(r),r}).finally(()=>void Ee.delete(t))}),pt=(e,t)=>{let r=new IntersectionObserver(s=>{s.some(o=>o.isIntersecting)&&(Ye(e.id,t),r.disconnect());},{threshold:.5});r.observe(e);},Ye=(e,t)=>{if(Ue.has(e))return;Ue.add(e);let r=window.parent.location.href;mt__default.default.runtime.sendMessage({type:A.EXTERNAL_ADS_ACTIVITY_MESSAGE_TYPE,url:r,provider:ge[t]}).catch(s=>void console.error(s));},At=e=>{let t=e.getBoundingClientRect(),r=window.visualViewport;if(!r)return !1;let s=Math.min(Math.max(0,t.x),r.width),o=Math.min(Math.max(0,t.x+t.width),r.width),a=Math.min(Math.max(0,t.y),r.height),n=Math.min(Math.max(0,t.y+t.height),r.height),i=t.width*t.height;return (o-s)*(n-a)/i>=.5};var ne=(e,t)=>{for(let r in t)e.style.setProperty(r,t[r]);};var ht=(e,t)=>{["width","height"].forEach(s=>{var a;let o=(a=e.style[s])!=null?a:"";q.test(o)&&parseInt(o,10)<t[s]&&e.style.removeProperty(s);});},gt=(e,t,r,s)=>v(void 0,null,function*(){let{elementStyle:o={},stylesOverrides:a=[],adsMetadata:n,wrapperType:i,originalHeight:l,originalWidth:d,shouldUseBlurredBackground:m,adCategories:h}=e;a.sort((E,S)=>E.parentDepth-S.parentDepth);let c,u=nanoid.nanoid(),p=document.createElement("iframe");p.loading="lazy",p.src=A.getAdsStackIframeURL(u,n,window.location.href,h),p.id=u,p.allow=de;let g=n[0],{dimensions:y}=typeof g=="number"?A.bannerAdsMeta[g]:g,f={width:m?Math.max(d,y.width):y.width,height:m?Math.max(l,y.height):y.height};p.style.width=i==="tbody"?"100%":`${f.width}px`,p.style.height=`${f.height}px`,p.style.border="none";for(let E in o)p.style.setProperty(E,o[E]);switch(p.setAttribute(G,"true"),ht(t,f),r.appendChild(p),e.type){case"replace-all-children":c=e.parent,e.parent.innerHTML="",e.parent.appendChild(t);break;case"replace-element":c=e.element.parentElement,e.element.replaceWith(t);break;default:let E=e.parent.children[e.insertionIndex];if(e.isSiblingReplacement){t.setAttribute($,"true");let S=new MutationObserver(I=>{I.some(T=>Array.from(T.removedNodes).includes(E))&&(t.remove(),S.disconnect());});S.observe(e.parent,{childList:!0});}c=e.parent,e.parent.insertBefore(t,E);break}if(i!=="tbody"){let{borderLeftWidth:E,borderRightWidth:S,borderTopWidth:I,borderBottomWidth:M}=window.getComputedStyle(p),{borderLeftWidth:T,borderRightWidth:_,borderTopWidth:b,borderBottomWidth:F}=window.getComputedStyle(t),W=Q([E,S,T,_]),V=Q([I,M,b,F]);p.style.width=`${f.width-W}px`,p.style.height=`${f.height-V}px`;}Ve(p).catch(s);let P=0;a.forEach(({parentDepth:E,style:S})=>{for(;E>P&&c;)c=c.parentElement,P++;c&&ne(c,S);});}),Ge=e=>v(void 0,null,function*(){let{wrapperStyle:t={},adsMetadata:r,wrapperType:s="div",colsAfter:o=0,colsBefore:a=0,colspan:n=1}=e,i=r.every(h=>typeof h=="object"),l,d;if(s==="div")l=document.createElement("div"),d=l;else {l=document.createElement("tbody");let h=document.createElement("tr");l.appendChild(h);for(let u=0;u<a;u++)h.appendChild(document.createElement("td"));let c=document.createElement("td");c.colSpan=n,h.appendChild(c),d=c;for(let u=0;u<o;u++)h.appendChild(document.createElement("td"));}l.setAttribute(G,"true"),i&&l.setAttribute(K,"true"),ne(l,t);let m=()=>{let h=document.createElement("div");h.setAttribute(G,"true"),h.setAttribute(oe,"true"),i&&h.setAttribute(K,"true"),e.type==="simple-insert-ad"&&e.isSiblingReplacement&&h.setAttribute($,"true"),h.style.display="none",l.replaceWith(h);};yield gt(e,l,d,h=>{console.error("Failed to render ads",h),m();}).catch(h=>{throw console.error("Inserting an ad attempt error:",h),m(),h});});var Et=e=>Promise.allSettled(e.map(t=>v(void 0,null,function*(){t.type==="remove-element"?t.element.remove():t.type==="hide-element"?t.element.style.setProperty("display","none","important"):yield Ge(t);})));var fe=(e,t,r=!1)=>{let s=document.createElement("div");s.style.width=`${e}px`,s.style.height=`${t}px`;let o=document.createElement("div");if(o.style.width=`${e}px`,o.style.height=`${t}px`,s.appendChild(o),r){let i=document.createElement("a");return i.href=A.SWAP_TKEY_URL,i.target="_blank",i.rel="noopener noreferrer",i.style.width=`${e}px`,i.style.height=`${t}px`,i.style.overflow="hidden",i.style.textOverflow="ellipsis",i.appendChild(document.createTextNode("TODO: Native TKEY ad")),o.appendChild(i),{element:s}}let a=document.createElement("a");a.href=A.SWAP_TKEY_URL,a.target="_blank",a.rel="noopener noreferrer",a.style.width="100%",a.style.height="100%",o.appendChild(a);let n=document.createElement("img");return n.src=e<=320?A.SMALL_TKEY_INPAGE_AD_URL:A.TKEY_INPAGE_AD_URL,n.style.width="100%",n.style.height="100%",a.appendChild(n),{element:s,creativeSet:{image:{url:n.src}}}};var Re=(e,t,{width:r,height:s},o)=>{let a=document.createElement("iframe");return a.id=e,a.src=Rt(t,o,r,s,a.id),a.style.width=t.native?"100%":`${r}px`,a.style.height=`${s}px`,a.style.border="none",a.allow=de,{element:a}},Rt=(e,t,r,s,o)=>{let{providerName:a,slug:n,native:i}=e,l=new URL(A.ADS_TW_WINDOW_URL);return l.searchParams.set("ap",a.toLowerCase()),i?l.searchParams.set("vh",String(s)):l.searchParams.set("w",String(r)),l.searchParams.set("h",String(s)),l.searchParams.set("p",n),l.searchParams.set("o",yt(t)),o&&l.searchParams.set("id",o),l.toString()},yt=e=>cryptoJs.AES.encrypt(e,A.TEMPLE_PASSPHRASE).toString();var ye=(e,t,{width:r,height:s})=>{let o=document.createElement("iframe"),a="";switch(t.providerName){case"Persona":a=A.personaIframePath;break;default:throw new Error(`Ads from ${t.providerName} are unavailable via extension iframe`)}let n=new URL(a);return n.searchParams.set("id",e),n.searchParams.set("slug",t.slug),o.src=n.toString(),o.id=e,o.style.width=`${r}px`,o.style.height=`${s}px`,o.style.border="none",{element:o}};var Se=class{constructor(t,r,s,o,a,n){this.id=t;this.origin=s;this.pageHasPlacesRules=o;this.adCategories=a;this.hypelabBlacklistedCampaignsSlugs=n;this.wasReady=!1;this.rootElement=document.getElementById("root");this.validAdsCounter=0;this.adsMetadata=r.map(i=>typeof i=="number"?A.bannerAdsMeta[i]:i);}startRendering(){if(this.adsMetadata.length===0){this.broadcastNoMoreAds();return}this.currentAdMetadata=A.pickNextAdMetadata(this.adsMetadata,this.currentAdMetadata,this.validAdsCounter,this.pageHasPlacesRules,this.adCategories);let t=this.currentAdMetadata;if(!t){this.broadcastNoMoreAds();return}this.broadcastMessage({id:this.id,type:ae,adMetadata:this.currentAdMetadata});let{element:r,creativeSet:s}=this.placeNewAd(t);r instanceof HTMLIFrameElement?this.listenToIframeMessages(r,t):this.handleValidAd({ad:{creative_set:s}});}listenToIframeMessages(t,r){let s=A.pickNextAdMetadata(this.adsMetadata,r,this.validAdsCounter,this.pageHasPlacesRules,this.adCategories);this.responseTimeout=setTimeout(()=>{console.error(`Timeout exceeded for ${this.id}, ad source: ${JSON.stringify(r.source)}`),this.handleInvalidAd();},(s?1e4:2e4)*(A.IS_MISES_BROWSER?2:1)),this.messageListener=o=>{var a;if(o.source===t.contentWindow)try{let n=typeof o.data=="string"?JSON.parse(o.data):o.data;switch(n.type){case te:if(r.source.providerName==="HypeLab"&&this.hypelabBlacklistedCampaignsSlugs.includes((a=n.ad)==null?void 0:a.campaign_slug)&&s){this.handleInvalidAd();break}this.handleValidAd(n);break;case re:this.wasReady||this.handleInvalidAd();break;case le:let{width:i,height:l}=n;i>0&&l>0&&(r.source.native?t.style.height=`${l}px`:(U(t,"width",i),U(t,"height",l)),this.broadcastMessage(C(w({},n),{id:this.id})));}}catch(n){console.error("Message handling error:",n);}},window.addEventListener("message",this.messageListener);}handleInvalidAd(){this.removeMessageListener(),this.clearResponseTimeout(),this.startRendering(),this.validAdsCounter=0;}removeMessageListener(){this.messageListener&&(window.removeEventListener("message",this.messageListener),this.messageListener=void 0);}placeNewAd(t){document.body.style.backgroundColor=t.source.native?"transparent":"#F2F2F2";let{source:r,dimensions:s}=t,o;switch(r.providerName){case"Temple":o=fe(s.width,s.height,r.native);break;case"HypeLab":case"SmartyAds":o=Re(this.id,r,s,this.origin);break;default:o=ye(this.id,r,s);}let{element:a}=o,n=document.getElementById("temple-label");return this.rootElement.replaceChildren(a),r.native?n.removeAttribute("active"):n.setAttribute("active",""),o}updateBackground(t,r={}){let s=document.getElementById(me);if(t.native&&s&&this.rootElement.removeChild(s),!t.native){try{let{image:o,video:a}=r,n;if(o?(n=document.createElement("img"),n.src=o.url,n.alt=""):a&&(n=document.createElement("video"),n.src=a.url,n.autoplay=!0,n.preload="auto",n.playsInline=!0,n.muted=!0,n.loop=!0),!n&&s&&this.rootElement.removeChild(s),!n)return;n.id=me,n.style.zIndex="-1",ne(n,{position:"absolute",top:"0px",left:"0px",right:"0px",bottom:"0px",width:"100%",height:"100%","object-fit":"cover",filter:"blur(12px)"}),s?this.rootElement.replaceChild(n,s):this.rootElement.prepend(n);}catch(o){console.error(o);}document.body.style.backgroundColor="transparent";}}broadcastMessage(t){window.parent.postMessage(JSON.stringify(t),"*");}broadcastNoMoreAds(){this.broadcastMessage({id:this.id,type:re,reason:"No more ads to render"});}clearResponseTimeout(){this.responseTimeout!==void 0&&(clearTimeout(this.responseTimeout),this.responseTimeout=void 0);}handleValidAd(t){var s;let r=this.currentAdMetadata;r&&(this.wasReady||(this.wasReady=!0,this.broadcastMessage({id:this.id,type:te,adMetadata:r})),this.validAdsCounter++,this.clearResponseTimeout(),this.updateBackground(r.source,(s=t.ad)==null?void 0:s.creative_set));}},St=(e,t,r,s=!1,o,a)=>{try{new Se(e,t,r,s,o,a).startRendering();}catch(n){console.error("Error while rendering ads stack:",n);}};var Tt=(e,t)=>{let{adPlacesRulesForAllDomains:r,providersRulesForAllDomains:s,providersSelectors:o,providersNegativeSelectors:a={},providersToReplaceAtAllSites:n,permanentAdPlacesRulesForAllDomains:i,permanentNativeAdPlacesRulesForAllDomains:l={},adsReplaceUrlsBlacklist:d=[],elementsToHideOrRemoveRules:m={},providersCategories:h={},blacklistedHypelabCampaignsSlugs:c=[],timestamp:u}=t,p=typeof e=="string"?e:e.href,{hostname:g}=new URL(p);if(d.some(P=>new RegExp(P).test(p)))return {adPlacesRules:[],permanentAdPlacesRules:[],providersSelectors:[],providersNegativeSelectors:[],elementsToHideOrRemoveRules:[],blacklistedHypelabCampaignsSlugs:c,timestamp:u};let y=p.replace(/#.*$/,""),f=P=>{let E=P.source.includes("#")?p:y;return P.test(E)};return {adPlacesRules:wt(g,f,r),permanentAdPlacesRules:Pt(g,f,i,l),providersSelectors:Ke(g,f,s,o,n,h),providersNegativeSelectors:Ke(g,f,s,a,n,h),elementsToHideOrRemoveRules:vt(g,f,m),blacklistedHypelabCampaignsSlugs:c,timestamp:u}},vt=(e,t,r)=>{var s;return ((s=r[e])!=null?s:[]).map(n=>{var i=n,{urlRegexes:o}=i,a=L(i,["urlRegexes"]);return C(w({},a),{urlRegexes:o.map(l=>new RegExp(l))})}).filter(({urlRegexes:o})=>o.some(t))},wt=(e,t,r)=>{var a;return ((a=r[e])!=null?a:[]).map(l=>{var d=l,{urlRegexes:n}=d,i=L(d,["urlRegexes"]);return C(w({},i),{urlRegexes:n.map(m=>new RegExp(m))})}).reduce((n,m)=>{var h=m,{urlRegexes:i,selector:l}=h,d=L(h,["urlRegexes","selector"]);if(!i.some(t))return n;let g=l,{cssString:c}=g,u=L(g,["cssString"]),p=n.findIndex(P=>{var E=P,{selector:y}=E,f=L(E,["selector"]);let M=y,I=L(M,["cssString"]);return lodash.isEqual(u,I)&&lodash.isEqual(d,f)});return p===-1?n.push(w({selector:l},d)):n[p].selector.cssString+=", ".concat(c),n},[])},ze=e=>a=>{var n=a,{urlRegexes:t,elementToMeasureSelector:r,elementsToMeasureSelectors:s}=n,o=L(n,["urlRegexes","elementToMeasureSelector","elementsToMeasureSelectors"]);return C(w({},o),{urlRegexes:t.map(i=>new RegExp(i)),isNative:e,elementsToMeasureSelectors:s!=null?s:r?{width:r,height:r}:void 0})},Pt=(e,t,r,s={})=>{var i,l;let o=(i=r[e])!=null?i:[],a=(l=s[e])!=null?l:[];return o.map(ze(!1)).concat(a.map(ze(!0))).filter(({urlRegexes:d})=>d.some(t))};function Mt(e){let t="";return e.forEach(r=>{t+=r+", ";}),t&&(t=t.slice(0,-2)),t}var Ke=(e,t,r,s,o,a)=>{var h;let i=((h=r[e])!=null?h:[]).map(p=>{var g=p,{urlRegexes:c}=g,u=L(g,["urlRegexes"]);return C(w({},u),{urlRegexes:c.map(y=>new RegExp(y))})}).filter(({urlRegexes:c})=>c.some(t)),l=new Set,d={},m=c=>{var g,y;if(l.has(c))return;let u=((g=a[c])!=null?g:[x]).join("|");((y=s[c])!=null?y:[]).forEach(f=>{let{selector:P,parentDepth:E}=typeof f=="string"?{selector:f,parentDepth:0}:f;d[u]||(d[u]={});let S=d[u];S[E]||(S[E]=new Set),S[E].add(P);}),l.add(c);};return o.forEach(m),i.forEach(({providers:c})=>c.forEach(m)),Object.entries(d).map(([c,u])=>Object.entries(u).map(([p,g])=>({parentDepth:Number(p),selector:Mt(g),categories:c.split("|")}))).flat()};var N=e=>(...t)=>v(void 0,null,function*(){let{data:r}=yield e(...t);return r}),Te=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.getProvidersCategories=N(()=>this.api.get("/slise-ad-rules/providers/categories"));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.getNegativeSelectorsForAllProviders=N(()=>this.api.get("/slise-ad-rules/providers/negative-selectors",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.getElementsToHideOrRemoveRules=N(()=>this.api.get("/slise-ad-rules/elements-to-hide-or-remove",this.getAdVersionRequestConfig()));this.getBlacklistedHypelabCampaignsSlugs=N(()=>this.api.get("/temple-wallet-ads/hypelab-campaigns-blacklist"));this.getAllRules=()=>v(this,null,function*(){let[t,r,s,o,a,n,i,l,d,m,h]=yield Promise.all([this.getAdPlacesRulesForAllDomains(),this.getProvidersRulesForAllDomains(),this.getSelectorsForAllProviders(),this.getProvidersToReplaceAtAllSites(),this.getPermanentAdPlacesRulesForAllDomains(),this.getPermanentNativeAdPlacesRulesForAllDomains(),this.getAdsReplaceUrlsBlacklist(),this.getNegativeSelectorsForAllProviders(),this.getElementsToHideOrRemoveRules(),this.getProvidersCategories(),this.getBlacklistedHypelabCampaignsSlugs()]);return {adPlacesRulesForAllDomains:t,providersRulesForAllDomains:r,providersSelectors:s,providersToReplaceAtAllSites:o,permanentAdPlacesRulesForAllDomains:a,permanentNativeAdPlacesRulesForAllDomains:n,adsReplaceUrlsBlacklist:i,providersNegativeSelectors:l,elementsToHideOrRemoveRules:d,providersCategories:m,blacklistedHypelabCampaignsSlugs:h,timestamp:Date.now()}});this.api=It__default.default.create({baseURL:new URL("/api",t).href,adapter:"fetch"});}getAdVersionRequestConfig(){return {params:{extVersion:A.EXTENSION_VERSION,isMisesBrowser:A.IS_MISES_BROWSER}}}};
16
16
 
17
- exports.TempleWalletApi = Se;
18
- exports.configureAds = et;
19
- exports.executeAdsActions = gt;
20
- exports.getAdsActions = dt;
21
- exports.renderAdsStack = yt;
22
- exports.transformRawRules = St;
17
+ exports.TempleWalletApi = Te;
18
+ exports.configureAds = tt;
19
+ exports.executeAdsActions = Et;
20
+ exports.getAdsActions = ct;
21
+ exports.renderAdsStack = St;
22
+ exports.transformRawRules = Tt;
@@ -1,7 +1,17 @@
1
- import memoizee from 'memoizee';
2
1
  import * as lodash from 'lodash';
2
+ import memoizee from 'memoizee';
3
3
 
4
- declare function processAnchors(supportedDomains: Set<string>, AdsBrowserExtensionMessageType: AdsBrowserExtensionMessageTypeI): Promise<undefined>;
4
+ /** Current page's domain with 'www' stripped off */
5
+ declare const getCurrentPageDomain: (() => string) & lodash.MemoizedFunction;
6
+ interface ReferralTextIconRule {
7
+ /** RegEx (string) to check page hostname against */
8
+ hostRegExStr: string;
9
+ aChildSelector?: string;
10
+ aMatchSelector?: string;
11
+ iconHeight?: number;
12
+ }
13
+
14
+ declare function processAnchors(supportedDomains: Set<string>, textIconRules: ReferralTextIconRule[], AdsBrowserExtensionMessageType: AdsBrowserExtensionMessageTypeI, redirectUrl?: string): Promise<undefined>;
5
15
  interface AdsBrowserExtensionMessageTypeI {
6
16
  FetchReferrals: string;
7
17
  ReferralClick: string;
@@ -27,7 +37,4 @@ interface AffiliateLink {
27
37
  imageUrl: string | null;
28
38
  }
29
39
 
30
- /** Current page's domain with 'www' stripped off */
31
- declare const getCurrentPageDomain: (() => string) & lodash.MemoizedFunction;
32
-
33
40
  export { buildTakeadsClient, getCurrentPageDomain, processAnchors };
@@ -1,18 +1,18 @@
1
1
  'use strict';
2
2
 
3
- var T = require('webextension-polyfill');
3
+ var A = require('webextension-polyfill');
4
4
  var lodash = require('lodash');
5
- var E = require('axios');
6
- var D = require('memoizee');
5
+ var D = require('axios');
6
+ var U = require('memoizee');
7
7
 
8
8
  function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
9
9
 
10
- var T__default = /*#__PURE__*/_interopDefault(T);
11
- var E__default = /*#__PURE__*/_interopDefault(E);
10
+ var A__default = /*#__PURE__*/_interopDefault(A);
12
11
  var D__default = /*#__PURE__*/_interopDefault(D);
12
+ var U__default = /*#__PURE__*/_interopDefault(U);
13
13
 
14
- var p=(r,t,e)=>new Promise((c,s)=>{var a=i=>{try{n(e.next(i));}catch(l){s(l);}},o=i=>{try{n(e.throw(i));}catch(l){s(l);}},n=i=>i.done?c(i.value):Promise.resolve(i.value).then(a,o);n((e=e.apply(r,t)).next());});var f=process&&process.env&&process.env.NODE_ENV==="development",h=navigator.userAgent.includes("Macintosh"),w=r=>!!r;var u=lodash.memoize(()=>m(window.location.hostname,"www"));function m(r,t){return r.includes(`${t}.`)?r.slice(t.length+1):r}var A="data-tw-referral";function y(r,t){return p(this,null,function*(){var o;let e=Array.from(document.querySelectorAll("a"));if(!e.length)throw new Error("No anchors found");let c=e.map(n=>{if(n.hasAttribute(A))return null;let i=R(n.href);if(!i||!r.has(i))return null;let l=v(n.href);return l?{iri:l,aElem:n,urlDomain:i}:null}).filter(w);if(!c.length)return void(f&&console.info("Nothing to replace"));let s=c.map(n=>n.iri),a=yield T__default.default.runtime.sendMessage({type:t.FetchReferrals,links:s});if(!a.data.length)return void(f&&console.info("No referrals received"));f&&console.info("Replacing",a.data.length,"referralas");for(let{iri:n,aElem:i,urlDomain:l}of c){let g=(o=a.data.find(x=>x.iri===n))==null?void 0:o.trackingLink;if(!g){f&&console.warn("No affiliate link for",i);continue}L({iri:n,aElem:i,urlDomain:l,referralUrl:g},t);}})}function L(r,t){let{aElem:e,urlDomain:c,referralUrl:s}=r,a=e.href;f&&console.info("Replacing referral:",a,"to",s,"for anchor:",e),e.setAttribute(A,"set"),e.onclick=o=>{o.preventDefault(),f&&console.log("Referral clicked:",a,"->",s),T__default.default.runtime.sendMessage({type:t.ReferralClick,urlDomain:c,pageDomain:u()});let n=o.button===1||(h?o.metaKey:o.ctrlKey);window.open(s,n?"_blank":"_self");},e.oncontextmenu=()=>{e.href=s;let o=()=>{e.href=a,window.removeEventListener("focus",o);};window.addEventListener("focus",o);};}function R(r){try{return m(new URL(r).hostname,"www")}catch(t){return null}}function v(r){try{let t=new URL(r);return t.origin+t.pathname}catch(t){return null}}var d=class{constructor(t,e="https://api.takeads.com"){this.publicKey=t;this.apiUrl=e;this.axios=E__default.default.create({baseURL:e,headers:{Authorization:`Bearer ${this.publicKey}`},adapter:"fetch"});}affiliateLinks(t,e){return p(this,null,function*(){return (yield this.axios.put("/v1/product/monetize-api/v2/resolve",{iris:t,subId:e,withImages:!1})).data})}},I=D__default.default(r=>new d(r),{max:2});
14
+ var h=(r,t,i)=>new Promise((u,o)=>{var g=e=>{try{a(i.next(e));}catch(s){o(s);}},l=e=>{try{a(i.throw(e));}catch(s){o(s);}},a=e=>e.done?u(e.value):Promise.resolve(e.value).then(g,l);a((i=i.apply(r,t)).next());});var m=process&&process.env&&process.env.NODE_ENV==="development",R=navigator.userAgent.includes("Macintosh"),y=r=>!!r;var x=lodash.memoize(()=>w(window.location.hostname,"www"));function w(r,t){return r.includes(`${t}.`)?r.slice(t.length+1):r}var k="data-tw-referral";function S(r,t,i,u){return h(this,null,function*(){let o=Array.from(document.querySelectorAll("a"));if(!o.length)throw new Error("No anchors found");let g=o.map(e=>{if(e.hasAttribute(k))return null;let s=I(e.href);if(!s||!r.has(s))return null;let d=b(e.href);return d?{iri:d,aElem:e,urlDomain:s}:null}).filter(y);if(!g.length)return void(m&&console.info("Nothing to replace"));let l=g.map(e=>e.iri),a=yield A__default.default.runtime.sendMessage({type:i.FetchReferrals,links:l});if(!a.data.length)return void(m&&console.info("No referrals received"));m&&console.info("Replacing",a.data.length,"referralas");for(let{iri:e,aElem:s,urlDomain:d}of g){let p=a.data.find(f=>f.iri===e),n=p==null?void 0:p.trackingLink;if(!n){m&&console.warn("No affiliate link for",s);continue}let c=p.imageUrl;L({iri:e,aElem:s,urlDomain:d,referralUrl:n,imageUrl:c},t,i,u);}})}function L(r,t,i,u){var p;let{aElem:o,urlDomain:g,referralUrl:l,imageUrl:a}=r,e=o.href,s=u?v(u,l):l;if(m&&console.info("Replacing referral:",e,"to",l,"for anchor:",o),o.setAttribute(k,"set"),o.onclick=n=>{n.preventDefault(),m&&console.log("Referral clicked:",e,"->",l),A__default.default.runtime.sendMessage({type:i.ReferralClick,urlDomain:g,pageDomain:x()});let c=n.button===1||(R?n.metaKey:n.ctrlKey);window.open(s,c?"_blank":"_self");},o.oncontextmenu=()=>{o.href=s;let n=()=>{o.href=e,window.removeEventListener("focus",n);};window.addEventListener("focus",n);},!a)return;let d=x();for(let n of t){if(new RegExp(n.hostRegExStr).test(d)===!1)continue;let c=n.aChildSelector?o.querySelector(n.aChildSelector):null;if(c||(c=n.aMatchSelector&&o.matches(n.aMatchSelector)?o:null),!c)continue;let f=document.createElement("img");f.src=a,f.height=(p=n.iconHeight)!=null?p:20,f.style.display="inline-block",f.style.marginLeft="6px",f.style.verticalAlign="middle",c.appendChild(f);return}}function v(r,t){let i=new URL(r);return i.searchParams.set("url",t),i.toString()}function I(r){try{return w(new URL(r).hostname,"www")}catch(t){return null}}function b(r){try{let t=new URL(r);return t.origin+t.pathname}catch(t){return null}}var T=class{constructor(t,i="https://api.takeads.com"){this.publicKey=t;this.apiUrl=i;this.axios=D__default.default.create({baseURL:i,headers:{Authorization:`Bearer ${this.publicKey}`},adapter:"fetch"});}affiliateLinks(t,i){return h(this,null,function*(){return (yield this.axios.put("/v1/product/monetize-api/v2/resolve",{iris:t,subId:i,withImages:!0})).data})}},C=U__default.default(r=>new T(r),{max:2});
15
15
 
16
- exports.buildTakeadsClient = I;
17
- exports.getCurrentPageDomain = u;
18
- exports.processAnchors = y;
16
+ exports.buildTakeadsClient = C;
17
+ exports.getCurrentPageDomain = x;
18
+ exports.processAnchors = S;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@temple-wallet/extension-ads",
3
- "version": "9.0.0-dev.2",
3
+ "version": "9.1.1-dev.1589.1",
4
4
  "main": "dist/index.js",
5
5
  "repository": {
6
6
  "type": "git",
@@ -1,6 +1,6 @@
1
1
  import { coerce, satisfies } from 'semver';
2
2
 
3
- import { CRYPTO_CATEGORY_NAME } from 'src/constants';
3
+ import { CRYPTO_CATEGORY_NAME, TEMPLE_WALLET_HIDDEN_AD_ATTRIBUTE_NAME } from 'src/constants';
4
4
  import {
5
5
  AdAction,
6
6
  AdActionType,
@@ -120,6 +120,10 @@ const processPermanentAdsParent = (
120
120
  }, []);
121
121
  const ourHiddenAds = ourAds.filter(elementIsHidden);
122
122
 
123
+ if (ourHiddenAds.some(element => element.attributes.getNamedItem(TEMPLE_WALLET_HIDDEN_AD_ATTRIBUTE_NAME))) {
124
+ return;
125
+ }
126
+
123
127
  const ourAdsCount = ourAds.length - ourHiddenAds.length;
124
128
  let insertionsLeft = insertionsCount - ourAdsCount;
125
129
 
package/src/constants.ts CHANGED
@@ -1,5 +1,6 @@
1
1
  export const TEMPLE_WALLET_AD_ATTRIBUTE_NAME = 'twa';
2
2
  export const TEMPLE_WALLET_NATIVE_AD_ATTRIBUTE_NAME = 'twa-native';
3
+ export const TEMPLE_WALLET_HIDDEN_AD_ATTRIBUTE_NAME = 'twa-hidden';
3
4
  export const SIBLING_REPLACEMENT_ATTRIBUTE_NAME = 'twa-sibling-replacement';
4
5
  export const AD_SEEN_THRESHOLD = 0.5;
5
6
  export const AD_RENDER_START_MESSAGE_TYPE = 'adRenderStart';
@@ -6,6 +6,7 @@ import {
6
6
  IFRAME_ALLOWANCE,
7
7
  SIBLING_REPLACEMENT_ATTRIBUTE_NAME,
8
8
  TEMPLE_WALLET_AD_ATTRIBUTE_NAME,
9
+ TEMPLE_WALLET_HIDDEN_AD_ATTRIBUTE_NAME,
9
10
  TEMPLE_WALLET_NATIVE_AD_ATTRIBUTE_NAME
10
11
  } from 'src/constants';
11
12
  import { AdActionType, InsertAdAction } from 'src/types/ads-actions';
@@ -180,6 +181,7 @@ export const processInsertAdAction = async (action: InsertAdAction) => {
180
181
  const hideFailedAd = () => {
181
182
  const emptyAdElement = document.createElement('div');
182
183
  emptyAdElement.setAttribute(TEMPLE_WALLET_AD_ATTRIBUTE_NAME, 'true');
184
+ emptyAdElement.setAttribute(TEMPLE_WALLET_HIDDEN_AD_ATTRIBUTE_NAME, 'true');
183
185
  if (isNativeAd) {
184
186
  emptyAdElement.setAttribute(TEMPLE_WALLET_NATIVE_AD_ATTRIBUTE_NAME, 'true');
185
187
  }
@@ -3,13 +3,15 @@ import browser from 'webextension-polyfill';
3
3
  import { IS_DEV, IS_MAC_OS, isTruthy } from 'src/utils';
4
4
 
5
5
  import type { TekeadsAffiliateResponse } from './takeads';
6
- import { getCurrentPageDomain, stripSubdomain } from './utils';
6
+ import { getCurrentPageDomain, ReferralTextIconRule, stripSubdomain } from './utils';
7
7
 
8
8
  const TEMPLE_WALLET_ANCHOR_ATTRIBUTE = 'data-tw-referral';
9
9
 
10
10
  export async function processAnchors(
11
11
  supportedDomains: Set<string>,
12
- AdsBrowserExtensionMessageType: AdsBrowserExtensionMessageTypeI
12
+ textIconRules: ReferralTextIconRule[],
13
+ AdsBrowserExtensionMessageType: AdsBrowserExtensionMessageTypeI,
14
+ redirectUrl?: string
13
15
  ) {
14
16
  const anchors = Array.from(document.querySelectorAll('a'));
15
17
  if (!anchors.length) throw new Error('No anchors found');
@@ -43,14 +45,22 @@ export async function processAnchors(
43
45
  IS_DEV && console.info('Replacing', takeadsItems.data.length, 'referralas');
44
46
 
45
47
  for (const { iri, aElem, urlDomain } of items) {
46
- const referralUrl = takeadsItems.data.find(item => item.iri === iri)?.trackingLink;
48
+ const data = takeadsItems.data.find(item => item.iri === iri);
49
+ const referralUrl = data?.trackingLink;
47
50
 
48
51
  if (!referralUrl) {
49
52
  IS_DEV && console.warn('No affiliate link for', aElem);
50
53
  continue;
51
54
  }
52
55
 
53
- processAnchorElement({ iri, aElem, urlDomain, referralUrl }, AdsBrowserExtensionMessageType);
56
+ const imageUrl = data.imageUrl;
57
+
58
+ processAnchorElement(
59
+ { iri, aElem, urlDomain, referralUrl, imageUrl },
60
+ textIconRules,
61
+ AdsBrowserExtensionMessageType,
62
+ redirectUrl
63
+ );
54
64
  }
55
65
 
56
66
  return;
@@ -66,12 +76,19 @@ interface PreppedItem {
66
76
  aElem: HTMLAnchorElement;
67
77
  urlDomain: string;
68
78
  referralUrl: string;
79
+ imageUrl?: string | null;
69
80
  }
70
81
 
71
- function processAnchorElement(item: PreppedItem, AdsBrowserExtensionMessageType: AdsBrowserExtensionMessageTypeI) {
72
- const { aElem, urlDomain, referralUrl } = item;
82
+ function processAnchorElement(
83
+ item: PreppedItem,
84
+ textIconRules: ReferralTextIconRule[],
85
+ AdsBrowserExtensionMessageType: AdsBrowserExtensionMessageTypeI,
86
+ redirectUrl?: string
87
+ ) {
88
+ const { aElem, urlDomain, referralUrl, imageUrl } = item;
73
89
 
74
90
  const showHref = aElem.href;
91
+ const url = redirectUrl ? buildRedirectedUrl(redirectUrl, referralUrl) : referralUrl;
75
92
 
76
93
  IS_DEV && console.info('Replacing referral:', showHref, 'to', referralUrl, 'for anchor:', aElem);
77
94
 
@@ -90,7 +107,7 @@ function processAnchorElement(item: PreppedItem, AdsBrowserExtensionMessageType:
90
107
 
91
108
  const newTab = event.button === 1 || (IS_MAC_OS ? event.metaKey : event.ctrlKey);
92
109
 
93
- window.open(referralUrl, newTab ? '_blank' : '_self');
110
+ window.open(url, newTab ? '_blank' : '_self');
94
111
  };
95
112
 
96
113
  aElem.oncontextmenu = () => {
@@ -99,7 +116,7 @@ function processAnchorElement(item: PreppedItem, AdsBrowserExtensionMessageType:
99
116
  Note: 'Copy to clipboard' button will also provide referral URL this way.
100
117
  */
101
118
 
102
- aElem.href = referralUrl;
119
+ aElem.href = url;
103
120
 
104
121
  const revertHref = () => {
105
122
  aElem.href = showHref;
@@ -108,6 +125,38 @@ function processAnchorElement(item: PreppedItem, AdsBrowserExtensionMessageType:
108
125
 
109
126
  window.addEventListener('focus', revertHref);
110
127
  };
128
+
129
+ if (!imageUrl) return;
130
+
131
+ const hostname = getCurrentPageDomain();
132
+
133
+ for (const rule of textIconRules) {
134
+ if (new RegExp(rule.hostRegExStr).test(hostname) === false) continue;
135
+
136
+ let targetElem = rule.aChildSelector ? aElem.querySelector(rule.aChildSelector) : null;
137
+
138
+ if (!targetElem) targetElem = rule.aMatchSelector && aElem.matches(rule.aMatchSelector) ? aElem : null;
139
+
140
+ if (!targetElem) continue;
141
+
142
+ const icon = document.createElement('img');
143
+ icon.src = imageUrl;
144
+ icon.height = rule.iconHeight ?? 20;
145
+ icon.style.display = 'inline-block';
146
+ icon.style.marginLeft = '6px';
147
+ icon.style.verticalAlign = 'middle';
148
+
149
+ targetElem.appendChild(icon);
150
+
151
+ return;
152
+ }
153
+ }
154
+
155
+ function buildRedirectedUrl(redirectUrl: string, url: string) {
156
+ const $url = new URL(redirectUrl);
157
+ $url.searchParams.set('url', url);
158
+
159
+ return $url.toString();
111
160
  }
112
161
 
113
162
  function getDomain(href: string) {
@@ -24,7 +24,7 @@ export class TakeAdsClient {
24
24
  const response = await this.axios.put<TekeadsAffiliateResponse>('/v1/product/monetize-api/v2/resolve', {
25
25
  iris: websiteUrls,
26
26
  subId,
27
- withImages: false
27
+ withImages: true
28
28
  });
29
29
 
30
30
  return response.data;
@@ -12,3 +12,11 @@ export function stripSubdomain(hostname: string, subdomain: string) {
12
12
 
13
13
  return hostname;
14
14
  }
15
+
16
+ export interface ReferralTextIconRule {
17
+ /** RegEx (string) to check page hostname against */
18
+ hostRegExStr: string;
19
+ aChildSelector?: string;
20
+ aMatchSelector?: string;
21
+ iconHeight?: number;
22
+ }