@temple-wallet/extension-ads 15.0.2 → 16.0.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/dist/index.d.ts CHANGED
@@ -2,7 +2,7 @@ type StringRecord<T = string> = Record<string, T>;
2
2
 
3
3
  interface AdSource {
4
4
  shouldNotUseStrictContainerLimits?: boolean;
5
- providerName: 'Temple' | 'Persona' | 'HypeLab' | 'Bitmedia';
5
+ providerName: 'Temple' | 'HypeLab' | 'Bitmedia';
6
6
  native?: boolean;
7
7
  slug: string;
8
8
  categories?: string[];
@@ -155,7 +155,6 @@ type AdAction = InsertAdAction | RemoveElementAction | HideElementAction;
155
155
 
156
156
  declare enum AdsProviderTitle {
157
157
  HypeLab = "HypeLab",
158
- Persona = "Persona",
159
158
  Temple = "Temple Wallet",
160
159
  Bitmedia = "Bitmedia"
161
160
  }
@@ -208,7 +207,6 @@ interface IAdsConfiguration {
208
207
  smallTkeyInpageAdUrl?: string;
209
208
  swapTkeyUrl: string;
210
209
  externalAdsActivityMessageType: string;
211
- personaIframePath: string;
212
210
  getAdsStackIframeURL: (params: AdsStackIframeURLParams) => string;
213
211
  buildNativeAdsMeta: (containerWidth: number, containerHeight: number) => AdMetadata[];
214
212
  bannerAdsMeta: AdMetadata[];
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 Tt = require('webextension-polyfill');
6
+ var vt = require('webextension-polyfill');
7
7
  var cryptoJs = require('crypto-js');
8
- var kt = require('axios');
8
+ var Wt = require('axios');
9
9
 
10
10
  function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
11
11
 
12
- var Tt__default = /*#__PURE__*/_interopDefault(Tt);
13
- var kt__default = /*#__PURE__*/_interopDefault(kt);
12
+ var vt__default = /*#__PURE__*/_interopDefault(vt);
13
+ var Wt__default = /*#__PURE__*/_interopDefault(Wt);
14
14
 
15
- var dt=Object.defineProperty,ct=Object.defineProperties;var mt=Object.getOwnPropertyDescriptors;var de=Object.getOwnPropertySymbols;var We=Object.prototype.hasOwnProperty,ke=Object.prototype.propertyIsEnumerable;var Oe=(e,t,n)=>t in e?dt(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,v=(e,t)=>{for(var n in t||(t={}))We.call(t,n)&&Oe(e,n,t[n]);if(de)for(var n of de(t))ke.call(t,n)&&Oe(e,n,t[n]);return e},N=(e,t)=>ct(e,mt(t));var x=(e,t)=>{var n={};for(var s in e)We.call(e,s)&&t.indexOf(s)<0&&(n[s]=e[s]);if(e!=null&&de)for(var s of de(e))t.indexOf(s)<0&&ke.call(e,s)&&(n[s]=e[s]);return n};var T=(e,t,n)=>new Promise((s,i)=>{var l=a=>{try{o(n.next(a));}catch(h){i(h);}},r=a=>{try{o(n.throw(a));}catch(h){i(h);}},o=a=>a.done?s(a.value):Promise.resolve(a.value).then(l,r);o((n=n.apply(e,t)).next());});process&&process.env&&process.env.NODE_ENV==="development";navigator.userAgent.includes("Macintosh");var Ue=e=>!!e,pt=300,B=(e=pt)=>new Promise(t=>setTimeout(t,e));var p=class{};p.HYPELAB_PROPERTY_SLUG="",p.IS_MISES_BROWSER=!1,p.ADS_TW_WINDOW_URL="",p.TKEY_INPAGE_AD_URL="",p.SMALL_TKEY_INPAGE_AD_URL="",p.SWAP_TKEY_URL="",p.EXTERNAL_ADS_ACTIVITY_MESSAGE_TYPE="",p.personaIframePath="",p.getAdsStackIframeURL=()=>"",p.buildNativeAdsMeta=()=>[],p.pickNextAdMetadata=()=>{},p.bannerAdsMeta=[];var At=e=>{let{hypelabPropertySlug:t,adsTwWindowUrl:n,tkeyInpageAdUrl:s,smallTkeyInpageAdUrl:i,swapTkeyUrl:l,externalAdsActivityMessageType:r,personaIframePath:o,getAdsStackIframeURL:a,buildNativeAdsMeta:h,bannerAdsMeta:d,extVersion:m,templePassphrase:c,isMisesBrowser:A,pickNextAdMetadata:g,evmAccountAddress:u,chainName:E}=e;i&&(p.SMALL_TKEY_INPAGE_AD_URL=i),p.HYPELAB_PROPERTY_SLUG=t,p.ADS_TW_WINDOW_URL=n,p.TKEY_INPAGE_AD_URL=s,p.SWAP_TKEY_URL=l,p.EXTERNAL_ADS_ACTIVITY_MESSAGE_TYPE=r,p.personaIframePath=o,p.getAdsStackIframeURL=a,p.buildNativeAdsMeta=h,p.pickNextAdMetadata=g,p.bannerAdsMeta=d,p.EXTENSION_VERSION=m,p.TEMPLE_PASSPHRASE=c,p.IS_MISES_BROWSER=A,p.evmAccountAddress=u,p.chainName=E;};var z="twa",te="twa-native",ne="twa-hidden",$="twa-sibling-replacement";var ce="adRenderStart",me="resize",re="ready",se="impression",ie="error",pe="accelerometer; gyroscope",b="crypto",ge="background";var K=/[\d.]+(px)?$/,X=`[${z}]`,Fe=`[${z}]:not([${te}])`,Ye=`[${te}]`,j=(e,t)=>{let n=parseInt(e,10);return isNaN(n)||!K.test(e)?t:n},k=(e,t,n)=>{e.style[t]=`${Math.max(j(e.style[t],0),n)}px`;},Q=e=>e.reduce((t,n)=>t+j(n,0),0),q=e=>!!e.closest(X),Ae=e=>{var t;return !!((t=e.previousElementSibling)!=null&&t.getAttribute($))},oe=e=>{let t=getComputedStyle(e),{x:n,right:s,width:i,height:l}=e.getBoundingClientRect(),r={width:i,height:l},o=["width","height"];for(let a of o){let h=t[a],d=e.getAttribute(a),m=Math.max(...[h,d].map(c=>j(c!=null?c:"",-1)));m!==-1&&(r[a]=m),a==="width"&&n<0?r.width+=n:a==="width"&&s>window.innerWidth&&(r.width=window.innerWidth-n);}return r},C=(e,t,n=document)=>e?t?[...n.querySelectorAll(e)]:[n.querySelector(e)].filter(s=>!!s):[],O=(e,t)=>{let n=e;for(let s=0;s<t;s++){let i=n.parentElement;if(!i)return null;n=i;}return n},Ve=(e,t,n,s,i)=>{if(e<2&&t<2)return [];if(s)return p.buildNativeAdsMeta(e,t);let l=n==="permanent"||n==="slot-replacement"?p.bannerAdsMeta.filter(({source:a})=>a.shouldNotUseStrictContainerLimits):[],r=Math.max(e,...l.map(({dimensions:a})=>a.width)),o=Math.max(t,...l.map(({dimensions:a})=>a.height));return p.bannerAdsMeta.reduce((a,{dimensions:h,source:d},m)=>{let{shouldNotUseStrictContainerLimits:c=!1,categories:A=[b],providerName:g}=d;if(A.every(I=>!i.includes(I))||a.some(I=>p.bannerAdsMeta[I].source.providerName===g))return a;let{minContainerWidth:u,minContainerHeight:E,width:f,maxContainerWidth:S,maxContainerHeight:y}=h,P=!1;switch(n){case"permanent":P=c||r>=f&&(o>=E||o<2);break;case"slot-replacement":P=c||r>=u&&(o>=E||o<2);break;default:P=e>=u&&t>=E&&e<=S&&t<=y;}return P&&a.push(m),a},[])},ht=e=>{let{x:t,y:n,width:s,height:i}=e.getBoundingClientRect();return t!==0||n!==0||s!==0||i!==0},fe=e=>{let{display:t}=window.getComputedStyle(e);switch(t){case"none":return !0;case"contents":return Array.from(e.children).every(n=>fe(n));default:return !ht(e)}};var Ge=(e,t)=>{let{shouldHide:n,cssString:s,parentDepth:i,isMultiple:l}=e;C(s,l).forEach(r=>{let o=O(r,i);if(!o)return;let a=window.getComputedStyle(o);a.display!=="none"&&a.visibility!=="hidden"&&t.push({type:n?"hide-element":"remove-element",element:o});});};var ze=(e,t,n,s)=>T(void 0,null,function*(){let{parentSelector:i,displayWidth:l}=e,{isMultiple:r,cssString:o,parentDepth:a}=i;if(l&&!semver.satisfies(semver.coerce(window.innerWidth),l))return [];let h=C(o,r).map(d=>O(d,a)).filter(d=>!!d);return yield Promise.all(h.map(d=>T(void 0,null,function*(){yield B(0),Et(d,e,t,n,s);}))),h}),Re=(e,t)=>{var n,s;return e?{width:(n=document.querySelector(e.width))!=null?n:t,height:(s=document.querySelector(e.height))!=null?s:t}:{width:t,height:t}},Et=(e,t,n,s,i)=>{var _e;let be=t,{shouldUseDivWrapper:l,divWrapperStyle:r,wrapperStyle:o,elementStyle:a,adSelector:h,insertionIndex:d,insertBeforeSelector:m,insertAfterSelector:c,insertionsCount:A=1,elementsToMeasureSelectors:g,stylesOverrides:u,shouldHideOriginal:E=!1,isNative:f,urlRegexes:S,parentSelector:y,supportsTheming:P,enableForNonMises:I,fontSampleSelector:w,displayWidth:M}=be,_=x(be,["shouldUseDivWrapper","divWrapperStyle","wrapperStyle","elementStyle","adSelector","insertionIndex","insertBeforeSelector","insertAfterSelector","insertionsCount","elementsToMeasureSelectors","stylesOverrides","shouldHideOriginal","isNative","urlRegexes","parentSelector","supportsTheming","enableForNonMises","fontSampleSelector","displayWidth"]),H=_.wrapperType?o:l?r:{display:"contents"},{isMultiple:L,cssString:F,parentDepth:Y}=h,U=C(f?Ye:Fe,!0,e).reduce((R,W)=>R.some(G=>G.contains(W))?R:[...R.filter(G=>!W.contains(G)),W],[]),V=U.filter(R=>fe(R)&&!R.hasAttribute(ne)),he=U.length-V.length,le=A-he;if(C(F,L,e).map(R=>O(R,Y)).filter(R=>Ue(R)&&!q(R)).forEach(R=>{var G;let W=window.getComputedStyle(R).display==="none";if(le<=0)(!E||!W)&&s.push({type:E?"hide-element":"remove-element",element:R});else {let st=Re(g,((G=R.parentElement)==null?void 0:G.children.length)===1?R.parentElement:R),Le=P&&w?document.querySelector(w):null,{fontSize:Ne,lineHeight:He}=Le?window.getComputedStyle(Le):{fontSize:void 0,lineHeight:void 0},it=Ne?j(Ne,0):0,ot=He?j(He,0):0,Ce=v({themeColor:P?i:void 0,fontSize:it||void 0,lineHeight:ot||void 0,wrapperStyle:H,elementStyle:a,stylesOverrides:u},_),at=v({type:"replace-element",element:R,adCategories:[b]},Ce),De={type:"hide-element",element:R},lt=v({type:"simple-insert-ad",parent:R.parentElement,insertionIndex:Array.from(R.parentElement.children).indexOf(R),isSiblingReplacement:!0,adCategories:[b]},Ce),ee=[],Be=Ae(R);E&&Be&&!W?ee=[De]:E&&!Be?ee=[De,lt]:E||(ee=[at]),ee.length>0&&n(st,"permanent",f,[b],...ee)&&le--;}}),le<=0)return;let Z=-1,Ie=e,ue={width:e,height:e},xe=m||c;if(xe){let R=e.querySelector(xe),W=R==null?void 0:R.parentElement;R&&W&&(Ie=W,Z=Array.from(e.children).indexOf(R)+(m?0:1),ue=Re(g,R));}else {let R=d!=null?d:0;Z=R<0?Math.max(e.children.length+R,0):Math.min(R,e.children.length),ue=Re(g,(_e=e.children[Z])!=null?_e:e);}if(Z!==-1){let R=v({type:"simple-insert-ad",wrapperStyle:H,elementStyle:a,parent:Ie,insertionIndex:Z,isSiblingReplacement:!1,stylesOverrides:u,adCategories:[b]},_);n(ue,"permanent",f,[b],...Array(le).fill(R));}};var Rt=["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"],yt=lodash.memoize(e=>e.reduce((t,{dimensions:n})=>{let s=t.filter(({width:i,height:l})=>i<n.width||l<n.height);return (s.length===0||s.some(({width:i,height:l})=>i>n.width||l>n.height))&&s.push(n),s},[])),$e=(e,t,n,s)=>T(void 0,null,function*(){let i=yt(p.bannerAdsMeta),l=e.map(({selector:o,parentDepth:a,categories:h})=>C(o,!0).reduce((d,m)=>{var w;let c=(w=O(m,a))!=null?w:m,A=d.findIndex(({element:M})=>M.contains(c)),g=c.parentElement&&window.getComputedStyle(c.parentElement),{width:u,height:E}=oe(c),f=s.some(M=>{var _;return M.type==="replace-all-children"||M.type==="simple-insert-ad"?M.parent.contains(c)||c.contains(M.parent):((_=M.element.parentElement)==null?void 0:_.contains(c))||c.contains(M.element)}),S=(g==null?void 0:g.display)==="none"||(g==null?void 0:g.visibility)==="hidden",y=A>=0&&d[A]instanceof HTMLAnchorElement,P=i.some(({width:M,height:_})=>u>=M&&E>=_);if(f||!P||S||y)return d;let I={element:c,categories:h};return A>=0?d.splice(A,1,I):d.some(({element:M})=>M.contains(c))||d.push(I),d},[])).flat(),r=t.map(({selector:o,parentDepth:a})=>C(o,!0).map(h=>O(h,a)).filter(h=>!!h)).flat();l=l.filter(({element:o})=>!r.includes(o)),yield Promise.all(l.map(h=>T(void 0,[h],function*({element:o,categories:a}){var g,u,E,f,S,y,P,I;yield B(0);let d=o.parentElement,{width:m,height:c}=window.getComputedStyle(o),A=K.test(m)&&K.test(c)?o:(u=(g=d==null?void 0:d.closest("div, article, aside, footer, header"))!=null?g:(d==null?void 0:d.tagName.toLowerCase())==="body"?void 0:d)!=null?u:o;if(!q(o)&&!o.querySelector(X)&&!s.some(w=>w.type==="simple-insert-ad"?!1:w.type==="replace-all-children"?w.parent.contains(o):w.element===o)){let w=(E=o.getAttribute("style"))!=null?E:"",M=Object.fromEntries(w.split(";").filter(Boolean).map(V=>V.split(":").map(he=>he.trim())));if((f=M.width)!=null&&f.match(/^0[a-z]/)||(S=M.height)!=null&&S.match(/^0[a-z]/))return;let _=window.getComputedStyle(o),H=v(v({},Object.fromEntries(Rt.map(V=>[V,_.getPropertyValue(V)]))),M);H.display==="none"&&delete H.display;let L={type:"hide-element",element:o},F={type:"simple-insert-ad",wrapperStyle:H,parent:(y=o.parentElement)!=null?y:document.body,insertionIndex:Array.from((I=(P=o.parentElement)==null?void 0:P.children)!=null?I:[]).indexOf(o),isSiblingReplacement:!0,shouldUseBlurredBackground:!0,adCategories:a},Y,U=o.closest(`[${$}] + *`);U&&U!==o?Y=[{type:"remove-element",element:U.previousElementSibling},L,F]:U?Y=window.getComputedStyle(o).display==="none"?[]:[L]:Y=[L,F],n({width:A,height:A},"provider-replacement",!1,a,...Y);}})));});var Ke=(e,t,n)=>T(void 0,null,function*(){let{cssString:s,isMultiple:i}=e.selector,l=C(s,i);yield Promise.all(l.map(r=>T(void 0,null,function*(){yield B(0),St(r,e,t,n);})));}),St=(e,t,n,s)=>{let{selector:{shouldUseDivWrapper:i,parentDepth:l,divWrapperStyle:r},stylesOverrides:o,shouldHideOriginal:a,isNative:h=!1}=t,d=O(e,l);if(!d||n.some(A=>A.contains(d))||q(d)||d.querySelector(X))return;let m={shouldUseDivWrapper:i,wrapperStyle:r},c;if(i&&a){let A=d.parentElement,g=window.getComputedStyle(d).display==="none",u=v({type:"simple-insert-ad",parent:A,insertionIndex:Array.from(A.children).indexOf(d),stylesOverrides:o==null?void 0:o.map(S=>{var y=S,{parentDepth:E}=y,f=x(y,["parentDepth"]);return N(v({},f),{parentDepth:E-1})}),isSiblingReplacement:!0,adCategories:[b]},m);c=[],g||c.push({type:"hide-element",element:d}),Ae(d)||c.push(u);}else if(i)c=[v({type:"replace-element",element:d,stylesOverrides:o==null?void 0:o.map(E=>{var f=E,{parentDepth:g}=f,u=x(f,["parentDepth"]);return N(v({},u),{parentDepth:g-1})}),adCategories:[b]},m)];else if(a){let A={type:"simple-insert-ad",parent:d,insertionIndex:0,stylesOverrides:o,isSiblingReplacement:!0,adCategories:[b],wrapperStyle:{display:"contents"}};c=Array.from(d.children).filter(g=>window.getComputedStyle(g).display!=="none").map(g=>({type:"hide-element",element:g})),d.querySelector(X)||c.push(A);}else c=[{type:"replace-all-children",parent:d,stylesOverrides:o,adCategories:[b],wrapperStyle:{display:"contents"}}];c.length>0&&s({width:d,height:d},"slot-replacement",h,[b],...c);};var vt=l=>T(void 0,[l],function*({providersSelectors:e,providersNegativeSelectors:t,adPlacesRules:n,permanentAdPlacesRules:s,elementsToHideOrRemoveRules:i}){let r=[],o=(d,m,c,A,...g)=>{if(g.length>0&&g.every(L=>L.type==="hide-element"||L.type==="remove-element"))return r.push(...g),!0;let{width:u}=oe(d.width),{height:E}=oe(d.height),{paddingLeft:f,paddingRight:S}=window.getComputedStyle(d.width),{paddingTop:y,paddingBottom:P}=window.getComputedStyle(d.height),I=Q([f,S]),w=I===u?u:u-I,M=Q([y,P]),_=M===E?E:E-M,H=Ve(w,_,m,c,A);return H.length?(r.push(...g.map(L=>L.type==="hide-element"||L.type==="remove-element"?L:N(v({},L),{adsMetadata:H,originalWidth:w,originalHeight:_}))),!0):!1},a=[],{backgroundColor:h}=window.getComputedStyle(document.body);return yield Promise.all(i.map(d=>T(void 0,null,function*(){yield B(0),Ge(d,r);}))),yield Promise.all(s.map(d=>T(void 0,null,function*(){yield B(0),a=a.concat(yield ze(d,o,r,h));}))),yield Promise.all(n.map(d=>T(void 0,null,function*(){yield B(0),yield Ke(d,a,o);}))),yield $e(e,t,o,r),r});var ye=(i=>(i.HypeLab="HypeLab",i.Persona="Persona",i.Temple="Temple Wallet",i.Bitmedia="Bitmedia",i))(ye||{});var Se=new Set,Xe=new Set,qe=e=>T(void 0,null,function*(){let t=e.id;if(Se.has(t))return;Se.add(t);let n=!1;return new Promise((s,i)=>{let l=!1,r,o=a=>{var h,d;if(a.source===e.contentWindow)try{let m=typeof a.data=="string"?JSON.parse(a.data):a.data;if(m.id!==t)return;let c=e.offsetWidth-e.clientWidth,A=e.offsetHeight-e.clientHeight;switch(m.type){case re:n=je(e),r=m.adMetadata.source.providerName,s();break;case ie:window.removeEventListener("message",o),e.style.display="none",i(new Error((h=m.reason)!=null?h:"Unknown error"));break;case ce:let{dimensions:g,source:u}=m.adMetadata;l=(d=u.native)!=null?d:!1;let{width:E,height:f}=g;E>0&&f>0&&(u.native?e.style.height=`${f}px`:(k(e,"width",E),k(e,"height",f)));break;case me:let{width:S,height:y}=m;l?e.style.height=`${y+A}px`:(k(e,"width",S+c),k(e,"height",y+A));break;case se:r&&n&&Pt(r);break}}catch(m){console.error("Observing error:",m);}};window.addEventListener("message",o);}).then(()=>{if(Xe.has(t))return;Xe.add(t),n=je(e),new IntersectionObserver(i=>{n=i.some(l=>l.isIntersecting);},{threshold:.5}).observe(e);}).catch(s=>{throw console.error(s),s}).finally(()=>void Se.delete(t))}),Pt=e=>{let t=window.parent.location.href;Tt__default.default.runtime.sendMessage({type:p.EXTERNAL_ADS_ACTIVITY_MESSAGE_TYPE,url:t,provider:ye[e]}).catch(n=>void console.error(n));},je=e=>{let t=e.getBoundingClientRect(),n=window.visualViewport;if(!n)return !1;let s=Math.min(Math.max(0,t.x),n.width),i=Math.min(Math.max(0,t.x+t.width),n.width),l=Math.min(Math.max(0,t.y),n.height),r=Math.min(Math.max(0,t.y+t.height),n.height),o=t.width*t.height;return (i-s)*(r-l)/o>=.5};var ae=(e,t)=>{for(let n in t)e.style.setProperty(n,t[n]);};var Mt=(e,t)=>{["width","height"].forEach(s=>{var l;let i=(l=e.style[s])!=null?l:"";K.test(i)&&parseInt(i,10)<t[s]&&e.style.removeProperty(s);});},Ze=e=>{let{adsMetadata:t,originalHeight:n,originalWidth:s,shouldUseBlurredBackground:i}=e,l=t[0],{dimensions:r}=typeof l=="number"?p.bannerAdsMeta[l]:l;return {width:i?Math.max(s,r.width):r.width,height:i?Math.max(n,r.height):r.height}},It=(e,t,n,s,i)=>T(void 0,null,function*(){let{elementStyle:l={},stylesOverrides:r=[],adsMetadata:o,wrapperType:a,adCategories:h,themeColor:d,fontSize:m,lineHeight:c}=e;r.sort((S,y)=>S.parentDepth-y.parentDepth);let A,g=nanoid.nanoid(),u=document.createElement("iframe");u.loading="lazy",u.src=p.getAdsStackIframeURL({id:g,adsMetadataIds:o,origin:window.location.href,adCategories:h,themeColor:d,fontSize:m,lineHeight:c,evmAccountAddress:p.evmAccountAddress,chainName:p.chainName}),u.id=g,u.allow=pe;let E=Ze(e);u.style.width=a==="tbody"?"100%":`${E.width}px`,u.style.height=`${E.height}px`,u.style.border="none";for(let S in l)u.style.setProperty(S,l[S]);switch(u.setAttribute(z,"true"),n.appendChild(u),e.type){case"replace-all-children":A=e.parent,e.parent.innerHTML="",e.parent.appendChild(t);break;case"replace-element":A=e.element.parentElement,e.element.replaceWith(t);break;default:let S=e.parent.children[e.insertionIndex];if(e.isSiblingReplacement){t.setAttribute($,"true");let y=new MutationObserver(P=>{P.some(w=>Array.from(w.removedNodes).includes(S))&&(t.remove(),y.disconnect());});y.observe(e.parent,{childList:!0});}A=e.parent,e.parent.insertBefore(t,S);break}if(a!=="tbody"){let{borderLeftWidth:S,borderRightWidth:y,borderTopWidth:P,borderBottomWidth:I}=window.getComputedStyle(u),{borderLeftWidth:w,borderRightWidth:M,borderTopWidth:_,borderBottomWidth:H}=window.getComputedStyle(t),L=Q([S,y,w,M]),F=Q([P,I,_,H]);u.style.width=`${E.width-L}px`,u.style.height=`${E.height-F}px`;}qe(u).then(s).catch(i);let f=0;r.forEach(({parentDepth:S,style:y})=>{for(;S>f&&A;)A=A.parentElement,f++;A&&ae(A,y);});}),Je={width:"0px",height:"0px",display:"block","overflow-x":"hidden","overflow-y":"hidden","max-block-size":"none","max-height":"none","max-inline-size":"none","max-width":"none","min-block-size":"0px","min-height":"0px","min-inline-size":"0px","min-width":"0px"},et=e=>T(void 0,null,function*(){let{wrapperStyle:t={},adsMetadata:n,wrapperType:s="div",colsAfter:i=0,colsBefore:l=0,colspan:r=1}=e,o=n.every(m=>typeof m=="object"),a,h;if(s==="div")a=document.createElement("div"),h=a;else {a=document.createElement("tbody");let m=document.createElement("tr");a.appendChild(m);for(let A=0;A<l;A++)m.appendChild(document.createElement("td"));let c=document.createElement("td");c.colSpan=r,m.appendChild(c),h=c;for(let A=0;A<i;A++)m.appendChild(document.createElement("td"));}a.setAttribute(z,"true"),a.setAttribute(ne,"true"),o&&a.setAttribute(te,"true"),ae(a,v(v({},t),Je));let d=()=>{for(let m of h.children)h.removeChild(m);};yield It(e,a,h,()=>{for(let m in Je)t[m]?a.style.setProperty(m,t[m]):a.style.removeProperty(m);Mt(a,Ze(e)),a.removeAttribute(ne);},m=>{console.error("Failed to render ads",m),d();}).catch(m=>{throw console.error("Inserting an ad attempt error:",m),d(),m});});var xt=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 et(t);})));var ve=(e,t,n=!1)=>{let s=document.createElement("div");s.style.width=`${e}px`,s.style.height=`${t}px`;let i=document.createElement("div");if(i.style.width=`${e}px`,i.style.height=`${t}px`,s.appendChild(i),n){let o=document.createElement("a");return o.href=p.SWAP_TKEY_URL,o.target="_blank",o.rel="noopener noreferrer",o.style.width=`${e}px`,o.style.height=`${t}px`,o.style.overflow="hidden",o.style.textOverflow="ellipsis",o.appendChild(document.createTextNode("TODO: Native TKEY ad")),i.appendChild(o),{element:s}}let l=document.createElement("a");l.href=p.SWAP_TKEY_URL,l.target="_blank",l.rel="noopener noreferrer",l.style.width="100%",l.style.height="100%",i.appendChild(l);let r=document.createElement("img");return r.src=e<=320?p.SMALL_TKEY_INPAGE_AD_URL:p.TKEY_INPAGE_AD_URL,r.style.width="100%",r.style.height="100%",l.appendChild(r),{element:s,creativeSet:{image:{url:r.src}}}};var Te=e=>{let{source:t,id:n,dimensions:s}=e,{width:i,height:l}=s,r=document.createElement("iframe");return r.id=n,r.src=Lt(e),r.style.width=t.native?"100%":`${i}px`,r.style.height=`${l}px`,r.style.border="none",r.allow=pe,{element:r}},_t={height:"h",slug:"p",ps:"ps",id:"id",themeColor:"tc",fontSize:"fs",lineHeight:"lh",evmAccountAddress:"ea",chainName:"cn"},Lt=i=>{var l=i,{source:e,origin:t,dimensions:n}=l,s=x(l,["source","origin","dimensions"]);let{width:r,height:o}=n,{providerName:a,slug:h,native:d}=e,m=new URL(p.ADS_TW_WINDOW_URL),c=(A,g)=>{m.searchParams.set(A,String(g));};return c("ps",p.HYPELAB_PROPERTY_SLUG),c("ap",a.toLowerCase()),d?c("vh",o):c("w",r),Object.entries(v({height:o,slug:h},s)).forEach(([A,g])=>{(g||g===0)&&c(_t[A],g);}),c("o",Nt(t)),m.toString()},Nt=e=>cryptoJs.AES.encrypt(e,p.TEMPLE_PASSPHRASE).toString();var Pe=(e,t,{width:n,height:s})=>{let i=document.createElement("iframe"),l="";switch(t.providerName){case"Persona":l=p.personaIframePath;break;default:throw new Error(`Ads from ${t.providerName} are unavailable via extension iframe`)}let r=new URL(l);return r.searchParams.set("id",e),r.searchParams.set("slug",t.slug),i.src=r.toString(),i.id=e,i.style.width=`${n}px`,i.style.height=`${s}px`,i.style.border="none",{element:i}};var we=class{constructor(d){this.wasReady=!1;this.rootElement=document.getElementById("root");this.validAdsCounter=0;var m=d,{id:t,initialAdsMetadata:n,origin:s,pageHasPlacesRules:i,adCategories:l,hypelabBlacklistedCampaignsSlugs:r,evmAccountAddress:o,chainName:a}=m,h=x(m,["id","initialAdsMetadata","origin","pageHasPlacesRules","adCategories","hypelabBlacklistedCampaignsSlugs","evmAccountAddress","chainName"]);this.id=t,this.origin=s,this.pageHasPlacesRules=i,this.adCategories=l,this.hypelabBlacklistedCampaignsSlugs=r,this.adThemeParams=h,this.evmAccountAddress=o,this.chainName=a,this.adsMetadata=n.map(c=>typeof c=="number"?p.bannerAdsMeta[c]:c);}startRendering(){if(this.adsMetadata.length===0){this.broadcastNoMoreAds();return}this.currentAdMetadata=p.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:ce,adMetadata:this.currentAdMetadata});let{element:n,creativeSet:s}=this.placeNewAd(t);n instanceof HTMLIFrameElement?this.listenToIframeMessages(n,t):this.handleValidAd({ad:{creative_set:s}});}listenToIframeMessages(t,n){let s=p.pickNextAdMetadata(this.adsMetadata,n,this.validAdsCounter,this.pageHasPlacesRules,this.adCategories);this.responseTimeout=setTimeout(()=>{console.error(`Timeout exceeded for ${this.id}, ad source: ${JSON.stringify(n.source)}`),this.handleInvalidAd();},(s?1e4:2e4)*(p.IS_MISES_BROWSER?2:1)),this.messageListener=i=>{var l;if(i.source===t.contentWindow)try{let r=typeof i.data=="string"?JSON.parse(i.data):i.data;switch(r.type){case re:if(n.source.providerName==="HypeLab"&&this.hypelabBlacklistedCampaignsSlugs.includes((l=r.ad)==null?void 0:l.campaign_slug)&&s){this.handleInvalidAd();break}this.handleValidAd(r);break;case ie:this.wasReady||this.handleInvalidAd();break;case me:let{width:o,height:a}=r;o>0&&a>0&&(n.source.native?t.style.height=`${a}px`:(k(t,"width",o),k(t,"height",a)),this.broadcastMessage(N(v({},r),{id:this.id})));break;case se:this.broadcastMessage({id:this.id,type:se});}}catch(r){console.error("Message handling error:",r);}},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:n,dimensions:s}=t,i;switch(n.providerName){case"Temple":i=ve(s.width,s.height,n.native);break;case"HypeLab":case"Bitmedia":i=Te(v({id:this.id,source:n,dimensions:s,origin:this.origin,evmAccountAddress:this.evmAccountAddress,chainName:this.chainName},this.adThemeParams));break;default:i=Pe(this.id,n,s);}let{element:l}=i,r=document.getElementById("temple-label");return this.rootElement.replaceChildren(l),n.native?r.removeAttribute("active"):r.setAttribute("active",""),i}updateBackground(t,n={}){let s=document.getElementById(ge);if(t.native&&s&&this.rootElement.removeChild(s),!t.native){try{let{image:i,video:l}=n,r;if(i?(r=document.createElement("img"),r.src=i.url,r.alt=""):l&&(r=document.createElement("video"),r.src=l.url,r.autoplay=!0,r.preload="auto",r.playsInline=!0,r.muted=!0,r.loop=!0),!r&&s&&this.rootElement.removeChild(s),!r)return;r.id=ge,r.style.zIndex="-1",ae(r,{position:"absolute",top:"0px",left:"0px",right:"0px",bottom:"0px",width:"100%",height:"100%","object-fit":"cover",filter:"blur(12px)"}),s?this.rootElement.replaceChild(r,s):this.rootElement.prepend(r);}catch(i){console.error(i);}document.body.style.backgroundColor="transparent";}}broadcastMessage(t){window.parent.postMessage(JSON.stringify(t),"*");}broadcastNoMoreAds(){this.broadcastMessage({id:this.id,type:ie,reason:"No more ads to render"});}clearResponseTimeout(){this.responseTimeout!==void 0&&(clearTimeout(this.responseTimeout),this.responseTimeout=void 0);}handleValidAd(t){var s;let n=this.currentAdMetadata;n&&(this.wasReady||(this.wasReady=!0,this.broadcastMessage({id:this.id,type:re,adMetadata:n})),this.validAdsCounter++,this.clearResponseTimeout(),this.updateBackground(n.source,(s=t.ad)==null?void 0:s.creative_set));}},Ht=e=>{try{new we(e).startRendering();}catch(t){console.error("Error while rendering ads stack:",t);}};var Ct=(e,t)=>{let{adPlacesRulesForAllDomains:n,providersRulesForAllDomains:s,providersSelectors:i,providersNegativeSelectors:l={},providersToReplaceAtAllSites:r,permanentAdPlacesRulesForAllDomains:o,permanentNativeAdPlacesRulesForAllDomains:a={},adsReplaceUrlsBlacklist:h=[],elementsToHideOrRemoveRules:d={},providersCategories:m={},blacklistedHypelabCampaignsSlugs:c=[],timestamp:A}=t,g=typeof e=="string"?e:e.href,{hostname:u}=new URL(g);if(h.some(S=>new RegExp(S).test(g)))return {adPlacesRules:[],permanentAdPlacesRules:[],providersSelectors:[],providersNegativeSelectors:[],elementsToHideOrRemoveRules:[],blacklistedHypelabCampaignsSlugs:c,timestamp:A};let E=g.replace(/#.*$/,""),f=S=>{let y=S.source.includes("#")?g:E;return S.test(y)};return {adPlacesRules:Bt(u,f,n),permanentAdPlacesRules:Ot(u,f,o,a),providersSelectors:rt(u,f,s,i,r,m),providersNegativeSelectors:rt(u,f,s,l,r,m),elementsToHideOrRemoveRules:Dt(u,f,d),blacklistedHypelabCampaignsSlugs:c,timestamp:A}},Dt=(e,t,n)=>{var s;return ((s=n[e])!=null?s:[]).map(r=>{var o=r,{urlRegexes:i}=o,l=x(o,["urlRegexes"]);return N(v({},l),{urlRegexes:i.map(a=>new RegExp(a))})}).filter(({urlRegexes:i})=>i.some(t))},Bt=(e,t,n)=>{var l;return ((l=n[e])!=null?l:[]).map(a=>{var h=a,{urlRegexes:r}=h,o=x(h,["urlRegexes"]);return N(v({},o),{urlRegexes:r.map(d=>new RegExp(d))})}).reduce((r,d)=>{var m=d,{urlRegexes:o,selector:a}=m,h=x(m,["urlRegexes","selector"]);if(!o.some(t))return r;let u=a,{cssString:c}=u,A=x(u,["cssString"]),g=r.findIndex(S=>{var y=S,{selector:E}=y,f=x(y,["selector"]);let w=E,I=x(w,["cssString"]);return lodash.isEqual(A,I)&&lodash.isEqual(h,f)});return g===-1?r.push(v({selector:a},h)):r[g].selector.cssString+=", ".concat(c),r},[])},nt=e=>l=>{var r=l,{urlRegexes:t,elementToMeasureSelector:n,elementsToMeasureSelectors:s}=r,i=x(r,["urlRegexes","elementToMeasureSelector","elementsToMeasureSelectors"]);return N(v({},i),{urlRegexes:t.map(o=>new RegExp(o)),isNative:e,elementsToMeasureSelectors:s!=null?s:n?{width:n,height:n}:void 0})},Ot=(e,t,n,s={})=>{var o,a;let i=(o=n[e])!=null?o:[],l=(a=s[e])!=null?a:[];return i.map(nt(!1)).concat(l.map(nt(!0))).filter(({urlRegexes:h})=>h.some(t))};function Wt(e){let t="";return e.forEach(n=>{t+=n+", ";}),t&&(t=t.slice(0,-2)),t}var rt=(e,t,n,s,i,l)=>{var m;let o=((m=n[e])!=null?m:[]).map(g=>{var u=g,{urlRegexes:c}=u,A=x(u,["urlRegexes"]);return N(v({},A),{urlRegexes:c.map(E=>new RegExp(E))})}).filter(({urlRegexes:c})=>c.some(t)),a=new Set,h={},d=c=>{var u,E;if(a.has(c))return;let A=((u=l[c])!=null?u:[b]).join("|");((E=s[c])!=null?E:[]).forEach(f=>{let{selector:S,parentDepth:y}=typeof f=="string"?{selector:f,parentDepth:0}:f;h[A]||(h[A]={});let P=h[A];P[y]||(P[y]=new Set),P[y].add(S);}),a.add(c);};return i.forEach(d),o.forEach(({providers:c})=>c.forEach(d)),Object.entries(h).map(([c,A])=>Object.entries(A).map(([g,u])=>({parentDepth:Number(g),selector:Wt(u),categories:c.split("|")}))).flat()};var D=e=>(...t)=>T(void 0,null,function*(){let{data:n}=yield e(...t);return n}),Me=class{constructor(t){this.getReplaceAdPlacesRulesForAllDomains=D(()=>this.api.get(this.getApiPath("/ad-places/replace",!1)));this.getProvidersToReplaceAtAllSites=D(()=>this.api.get(this.getApiPath("/providers/all-sites",!1)));this.getProvidersCategories=D(()=>this.api.get(this.getApiPath("/providers/categories",!1)));this.getProvidersRulesForAllDomains=D(()=>this.api.get(this.getApiPath("/providers/by-sites",!1)));this.getSelectorsForAllProviders=D(()=>this.api.get(this.getApiPath("/providers/selectors",!0)));this.getNegativeSelectorsForAllProviders=D(()=>this.api.get(this.getApiPath("/providers/negative-selectors",!1)));this.getPermanentAdPlacesRulesForAllDomains=D(()=>this.api.get(this.getApiPath("/ad-places/permanent",!1)));this.getPermanentNativeAdPlacesRulesForAllDomains=D(()=>this.api.get(this.getApiPath("/ad-places/permanent-native",!0)));this.getAdsReplaceUrlsBlacklist=D(()=>this.api.get(this.getApiPath("/replace-urls-blacklist",!1)));this.getElementsToHideOrRemoveRules=D(()=>this.api.get(this.getApiPath("/elements-to-hide-or-remove",!1)));this.getBlacklistedHypelabCampaignsSlugs=D(()=>this.api.get(this.getApiPath("/hypelab-campaigns-blacklist",!1)));this.getAllRules=()=>T(this,null,function*(){let[t,n,s,i,l,r,o,a,h,d,m]=yield Promise.all([this.getReplaceAdPlacesRulesForAllDomains(),this.getProvidersRulesForAllDomains(),this.getSelectorsForAllProviders(),this.getProvidersToReplaceAtAllSites(),this.getPermanentAdPlacesRulesForAllDomains(),this.getPermanentNativeAdPlacesRulesForAllDomains(),this.getAdsReplaceUrlsBlacklist(),this.getNegativeSelectorsForAllProviders(),this.getElementsToHideOrRemoveRules(),this.getProvidersCategories(),this.getBlacklistedHypelabCampaignsSlugs()]);return {adPlacesRulesForAllDomains:t,providersRulesForAllDomains:n,providersSelectors:s,providersToReplaceAtAllSites:i,permanentAdPlacesRulesForAllDomains:l,permanentNativeAdPlacesRulesForAllDomains:r,adsReplaceUrlsBlacklist:o,providersNegativeSelectors:a,elementsToHideOrRemoveRules:h,providersCategories:d,blacklistedHypelabCampaignsSlugs:m,timestamp:Date.now()}});this.api=kt__default.default.create({baseURL:t,adapter:"fetch"});}getApiPath(t,n){return `/ads-rules/${p.EXTENSION_VERSION}${t}${n?p.IS_MISES_BROWSER?"/mises":"/no-mises":""}`}};
15
+ var lt=Object.defineProperty,dt=Object.defineProperties;var ct=Object.getOwnPropertyDescriptors;var de=Object.getOwnPropertySymbols;var Oe=Object.prototype.hasOwnProperty,We=Object.prototype.propertyIsEnumerable;var Be=(e,t,n)=>t in e?lt(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,v=(e,t)=>{for(var n in t||(t={}))Oe.call(t,n)&&Be(e,n,t[n]);if(de)for(var n of de(t))We.call(t,n)&&Be(e,n,t[n]);return e},N=(e,t)=>dt(e,ct(t));var x=(e,t)=>{var n={};for(var s in e)Oe.call(e,s)&&t.indexOf(s)<0&&(n[s]=e[s]);if(e!=null&&de)for(var s of de(e))t.indexOf(s)<0&&We.call(e,s)&&(n[s]=e[s]);return n};var T=(e,t,n)=>new Promise((s,a)=>{var l=o=>{try{i(n.next(o));}catch(h){a(h);}},r=o=>{try{i(n.throw(o));}catch(h){a(h);}},i=o=>o.done?s(o.value):Promise.resolve(o.value).then(l,r);i((n=n.apply(e,t)).next());});process&&process.env&&process.env.NODE_ENV==="development";navigator.userAgent.includes("Macintosh");var ke=e=>!!e,mt=300,B=(e=mt)=>new Promise(t=>setTimeout(t,e));var A=class{};A.HYPELAB_PROPERTY_SLUG="",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.getAdsStackIframeURL=()=>"",A.buildNativeAdsMeta=()=>[],A.pickNextAdMetadata=()=>{},A.bannerAdsMeta=[];var pt=e=>{let{hypelabPropertySlug:t,adsTwWindowUrl:n,tkeyInpageAdUrl:s,smallTkeyInpageAdUrl:a,swapTkeyUrl:l,externalAdsActivityMessageType:r,getAdsStackIframeURL:i,buildNativeAdsMeta:o,bannerAdsMeta:h,extVersion:d,templePassphrase:m,isMisesBrowser:c,pickNextAdMetadata:p,evmAccountAddress:g,chainName:u}=e;a&&(A.SMALL_TKEY_INPAGE_AD_URL=a),A.HYPELAB_PROPERTY_SLUG=t,A.ADS_TW_WINDOW_URL=n,A.TKEY_INPAGE_AD_URL=s,A.SWAP_TKEY_URL=l,A.EXTERNAL_ADS_ACTIVITY_MESSAGE_TYPE=r,A.getAdsStackIframeURL=i,A.buildNativeAdsMeta=o,A.pickNextAdMetadata=p,A.bannerAdsMeta=h,A.EXTENSION_VERSION=d,A.TEMPLE_PASSPHRASE=m,A.IS_MISES_BROWSER=c,A.evmAccountAddress=g,A.chainName=u;};var z="twa",te="twa-native",ne="twa-hidden",$="twa-sibling-replacement";var ce="adRenderStart",me="resize",se="ready",re="impression",ie="error",pe="accelerometer; gyroscope",_="crypto",ge="background";var K=/[\d.]+(px)?$/,X=`[${z}]`,Ue=`[${z}]:not([${te}])`,Fe=`[${te}]`,j=(e,t)=>{let n=parseInt(e,10);return isNaN(n)||!K.test(e)?t:n},k=(e,t,n)=>{e.style[t]=`${Math.max(j(e.style[t],0),n)}px`;},Q=e=>e.reduce((t,n)=>t+j(n,0),0),q=e=>!!e.closest(X),Ae=e=>{var t;return !!((t=e.previousElementSibling)!=null&&t.getAttribute($))},oe=e=>{let t=getComputedStyle(e),{x:n,right:s,width:a,height:l}=e.getBoundingClientRect(),r={width:a,height:l},i=["width","height"];for(let o of i){let h=t[o],d=e.getAttribute(o),m=Math.max(...[h,d].map(c=>j(c!=null?c:"",-1)));m!==-1&&(r[o]=m),o==="width"&&n<0?r.width+=n:o==="width"&&s>window.innerWidth&&(r.width=window.innerWidth-n);}return r},C=(e,t,n=document)=>e?t?[...n.querySelectorAll(e)]:[n.querySelector(e)].filter(s=>!!s):[],O=(e,t)=>{let n=e;for(let s=0;s<t;s++){let a=n.parentElement;if(!a)return null;n=a;}return n},Ye=(e,t,n,s,a)=>{if(e<2&&t<2)return [];if(s)return A.buildNativeAdsMeta(e,t);let l=n==="permanent"||n==="slot-replacement"?A.bannerAdsMeta.filter(({source:o})=>o.shouldNotUseStrictContainerLimits):[],r=Math.max(e,...l.map(({dimensions:o})=>o.width)),i=Math.max(t,...l.map(({dimensions:o})=>o.height));return A.bannerAdsMeta.reduce((o,{dimensions:h,source:d},m)=>{let{shouldNotUseStrictContainerLimits:c=!1,categories:p=[_],providerName:g}=d;if(p.every(I=>!a.includes(I))||o.some(I=>A.bannerAdsMeta[I].source.providerName===g))return o;let{minContainerWidth:u,minContainerHeight:E,width:f,maxContainerWidth:S,maxContainerHeight:y}=h,P=!1;switch(n){case"permanent":P=c||r>=f&&(i>=E||i<2);break;case"slot-replacement":P=c||r>=u&&(i>=E||i<2);break;default:P=e>=u&&t>=E&&e<=S&&t<=y;}return P&&o.push(m),o},[])},At=e=>{let{x:t,y:n,width:s,height:a}=e.getBoundingClientRect();return t!==0||n!==0||s!==0||a!==0},fe=e=>{let{display:t}=window.getComputedStyle(e);switch(t){case"none":return !0;case"contents":return Array.from(e.children).every(n=>fe(n));default:return !At(e)}};var Ge=(e,t)=>{let{shouldHide:n,cssString:s,parentDepth:a,isMultiple:l}=e;C(s,l).forEach(r=>{let i=O(r,a);if(!i)return;let o=window.getComputedStyle(i);o.display!=="none"&&o.visibility!=="hidden"&&t.push({type:n?"hide-element":"remove-element",element:i});});};var Ve=(e,t,n,s)=>T(void 0,null,function*(){let{parentSelector:a,displayWidth:l}=e,{isMultiple:r,cssString:i,parentDepth:o}=a;if(l&&!semver.satisfies(semver.coerce(window.innerWidth),l))return [];let h=C(i,r).map(d=>O(d,o)).filter(d=>!!d);return yield Promise.all(h.map(d=>T(void 0,null,function*(){yield B(0),gt(d,e,t,n,s);}))),h}),Re=(e,t)=>{var n,s;return e?{width:(n=document.querySelector(e.width))!=null?n:t,height:(s=document.querySelector(e.height))!=null?s:t}:{width:t,height:t}},gt=(e,t,n,s,a)=>{var _e;let xe=t,{shouldUseDivWrapper:l,divWrapperStyle:r,wrapperStyle:i,elementStyle:o,adSelector:h,insertionIndex:d,insertBeforeSelector:m,insertAfterSelector:c,insertionsCount:p=1,elementsToMeasureSelectors:g,stylesOverrides:u,shouldHideOriginal:E=!1,isNative:f,urlRegexes:S,parentSelector:y,supportsTheming:P,enableForNonMises:I,fontSampleSelector:w,displayWidth:M}=xe,b=x(xe,["shouldUseDivWrapper","divWrapperStyle","wrapperStyle","elementStyle","adSelector","insertionIndex","insertBeforeSelector","insertAfterSelector","insertionsCount","elementsToMeasureSelectors","stylesOverrides","shouldHideOriginal","isNative","urlRegexes","parentSelector","supportsTheming","enableForNonMises","fontSampleSelector","displayWidth"]),H=b.wrapperType?i:l?r:{display:"contents"},{isMultiple:L,cssString:F,parentDepth:Y}=h,U=C(f?Fe:Ue,!0,e).reduce((R,W)=>R.some(V=>V.contains(W))?R:[...R.filter(V=>!W.contains(V)),W],[]),G=U.filter(R=>fe(R)&&!R.hasAttribute(ne)),he=U.length-G.length,le=p-he;if(C(F,L,e).map(R=>O(R,Y)).filter(R=>ke(R)&&!q(R)).forEach(R=>{var V;let W=window.getComputedStyle(R).display==="none";if(le<=0)(!E||!W)&&s.push({type:E?"hide-element":"remove-element",element:R});else {let st=Re(g,((V=R.parentElement)==null?void 0:V.children.length)===1?R.parentElement:R),be=P&&w?document.querySelector(w):null,{fontSize:Le,lineHeight:Ne}=be?window.getComputedStyle(be):{fontSize:void 0,lineHeight:void 0},rt=Le?j(Le,0):0,it=Ne?j(Ne,0):0,He=v({themeColor:P?a:void 0,fontSize:rt||void 0,lineHeight:it||void 0,wrapperStyle:H,elementStyle:o,stylesOverrides:u},b),ot=v({type:"replace-element",element:R,adCategories:[_]},He),Ce={type:"hide-element",element:R},at=v({type:"simple-insert-ad",parent:R.parentElement,insertionIndex:Array.from(R.parentElement.children).indexOf(R),isSiblingReplacement:!0,adCategories:[_]},He),ee=[],De=Ae(R);E&&De&&!W?ee=[Ce]:E&&!De?ee=[Ce,at]:E||(ee=[ot]),ee.length>0&&n(st,"permanent",f,[_],...ee)&&le--;}}),le<=0)return;let Z=-1,Me=e,ue={width:e,height:e},Ie=m||c;if(Ie){let R=e.querySelector(Ie),W=R==null?void 0:R.parentElement;R&&W&&(Me=W,Z=Array.from(e.children).indexOf(R)+(m?0:1),ue=Re(g,R));}else {let R=d!=null?d:0;Z=R<0?Math.max(e.children.length+R,0):Math.min(R,e.children.length),ue=Re(g,(_e=e.children[Z])!=null?_e:e);}if(Z!==-1){let R=v({type:"simple-insert-ad",wrapperStyle:H,elementStyle:o,parent:Me,insertionIndex:Z,isSiblingReplacement:!1,stylesOverrides:u,adCategories:[_]},b);n(ue,"permanent",f,[_],...Array(le).fill(R));}};var ft=["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"],Rt=lodash.memoize(e=>e.reduce((t,{dimensions:n})=>{let s=t.filter(({width:a,height:l})=>a<n.width||l<n.height);return (s.length===0||s.some(({width:a,height:l})=>a>n.width||l>n.height))&&s.push(n),s},[])),ze=(e,t,n,s)=>T(void 0,null,function*(){let a=Rt(A.bannerAdsMeta),l=e.map(({selector:i,parentDepth:o,categories:h})=>C(i,!0).reduce((d,m)=>{var w;let c=(w=O(m,o))!=null?w:m,p=d.findIndex(({element:M})=>M.contains(c)),g=c.parentElement&&window.getComputedStyle(c.parentElement),{width:u,height:E}=oe(c),f=s.some(M=>{var b;return M.type==="replace-all-children"||M.type==="simple-insert-ad"?M.parent.contains(c)||c.contains(M.parent):((b=M.element.parentElement)==null?void 0:b.contains(c))||c.contains(M.element)}),S=(g==null?void 0:g.display)==="none"||(g==null?void 0:g.visibility)==="hidden",y=p>=0&&d[p]instanceof HTMLAnchorElement,P=a.some(({width:M,height:b})=>u>=M&&E>=b);if(f||!P||S||y)return d;let I={element:c,categories:h};return p>=0?d.splice(p,1,I):d.some(({element:M})=>M.contains(c))||d.push(I),d},[])).flat(),r=t.map(({selector:i,parentDepth:o})=>C(i,!0).map(h=>O(h,o)).filter(h=>!!h)).flat();l=l.filter(({element:i})=>!r.includes(i)),yield Promise.all(l.map(h=>T(void 0,[h],function*({element:i,categories:o}){var g,u,E,f,S,y,P,I;yield B(0);let d=i.parentElement,{width:m,height:c}=window.getComputedStyle(i),p=K.test(m)&&K.test(c)?i:(u=(g=d==null?void 0:d.closest("div, article, aside, footer, header"))!=null?g:(d==null?void 0:d.tagName.toLowerCase())==="body"?void 0:d)!=null?u:i;if(!q(i)&&!i.querySelector(X)&&!s.some(w=>w.type==="simple-insert-ad"?!1:w.type==="replace-all-children"?w.parent.contains(i):w.element===i)){let w=(E=i.getAttribute("style"))!=null?E:"",M=Object.fromEntries(w.split(";").filter(Boolean).map(G=>G.split(":").map(he=>he.trim())));if((f=M.width)!=null&&f.match(/^0[a-z]/)||(S=M.height)!=null&&S.match(/^0[a-z]/))return;let b=window.getComputedStyle(i),H=v(v({},Object.fromEntries(ft.map(G=>[G,b.getPropertyValue(G)]))),M);H.display==="none"&&delete H.display;let L={type:"hide-element",element:i},F={type:"simple-insert-ad",wrapperStyle:H,parent:(y=i.parentElement)!=null?y:document.body,insertionIndex:Array.from((I=(P=i.parentElement)==null?void 0:P.children)!=null?I:[]).indexOf(i),isSiblingReplacement:!0,shouldUseBlurredBackground:!0,adCategories:o},Y,U=i.closest(`[${$}] + *`);U&&U!==i?Y=[{type:"remove-element",element:U.previousElementSibling},L,F]:U?Y=window.getComputedStyle(i).display==="none"?[]:[L]:Y=[L,F],n({width:p,height:p},"provider-replacement",!1,o,...Y);}})));});var $e=(e,t,n)=>T(void 0,null,function*(){let{cssString:s,isMultiple:a}=e.selector,l=C(s,a);yield Promise.all(l.map(r=>T(void 0,null,function*(){yield B(0),yt(r,e,t,n);})));}),yt=(e,t,n,s)=>{let{selector:{shouldUseDivWrapper:a,parentDepth:l,divWrapperStyle:r},stylesOverrides:i,shouldHideOriginal:o,isNative:h=!1}=t,d=O(e,l);if(!d||n.some(p=>p.contains(d))||q(d)||d.querySelector(X))return;let m={shouldUseDivWrapper:a,wrapperStyle:r},c;if(a&&o){let p=d.parentElement,g=window.getComputedStyle(d).display==="none",u=v({type:"simple-insert-ad",parent:p,insertionIndex:Array.from(p.children).indexOf(d),stylesOverrides:i==null?void 0:i.map(S=>{var y=S,{parentDepth:E}=y,f=x(y,["parentDepth"]);return N(v({},f),{parentDepth:E-1})}),isSiblingReplacement:!0,adCategories:[_]},m);c=[],g||c.push({type:"hide-element",element:d}),Ae(d)||c.push(u);}else if(a)c=[v({type:"replace-element",element:d,stylesOverrides:i==null?void 0:i.map(E=>{var f=E,{parentDepth:g}=f,u=x(f,["parentDepth"]);return N(v({},u),{parentDepth:g-1})}),adCategories:[_]},m)];else if(o){let p={type:"simple-insert-ad",parent:d,insertionIndex:0,stylesOverrides:i,isSiblingReplacement:!0,adCategories:[_],wrapperStyle:{display:"contents"}};c=Array.from(d.children).filter(g=>window.getComputedStyle(g).display!=="none").map(g=>({type:"hide-element",element:g})),d.querySelector(X)||c.push(p);}else c=[{type:"replace-all-children",parent:d,stylesOverrides:i,adCategories:[_],wrapperStyle:{display:"contents"}}];c.length>0&&s({width:d,height:d},"slot-replacement",h,[_],...c);};var St=l=>T(void 0,[l],function*({providersSelectors:e,providersNegativeSelectors:t,adPlacesRules:n,permanentAdPlacesRules:s,elementsToHideOrRemoveRules:a}){let r=[],i=(d,m,c,p,...g)=>{if(g.length>0&&g.every(L=>L.type==="hide-element"||L.type==="remove-element"))return r.push(...g),!0;let{width:u}=oe(d.width),{height:E}=oe(d.height),{paddingLeft:f,paddingRight:S}=window.getComputedStyle(d.width),{paddingTop:y,paddingBottom:P}=window.getComputedStyle(d.height),I=Q([f,S]),w=I===u?u:u-I,M=Q([y,P]),b=M===E?E:E-M,H=Ye(w,b,m,c,p);return H.length?(r.push(...g.map(L=>L.type==="hide-element"||L.type==="remove-element"?L:N(v({},L),{adsMetadata:H,originalWidth:w,originalHeight:b}))),!0):!1},o=[],{backgroundColor:h}=window.getComputedStyle(document.body);return yield Promise.all(a.map(d=>T(void 0,null,function*(){yield B(0),Ge(d,r);}))),yield Promise.all(s.map(d=>T(void 0,null,function*(){yield B(0),o=o.concat(yield Ve(d,i,r,h));}))),yield Promise.all(n.map(d=>T(void 0,null,function*(){yield B(0),yield $e(d,o,i);}))),yield ze(e,t,i,r),r});var ye=(s=>(s.HypeLab="HypeLab",s.Temple="Temple Wallet",s.Bitmedia="Bitmedia",s))(ye||{});var Se=new Set,Ke=new Set,Qe=e=>T(void 0,null,function*(){let t=e.id;if(Se.has(t))return;Se.add(t);let n=!1;return new Promise((s,a)=>{let l=!1,r,i=o=>{var h,d;if(o.source===e.contentWindow)try{let m=typeof o.data=="string"?JSON.parse(o.data):o.data;if(m.id!==t)return;let c=e.offsetWidth-e.clientWidth,p=e.offsetHeight-e.clientHeight;switch(m.type){case se:n=Xe(e),r=m.adMetadata.source.providerName,s();break;case ie:window.removeEventListener("message",i),e.style.display="none",a(new Error((h=m.reason)!=null?h:"Unknown error"));break;case ce:let{dimensions:g,source:u}=m.adMetadata;l=(d=u.native)!=null?d:!1;let{width:E,height:f}=g;E>0&&f>0&&(u.native?e.style.height=`${f}px`:(k(e,"width",E),k(e,"height",f)));break;case me:let{width:S,height:y}=m;l?e.style.height=`${y+p}px`:(k(e,"width",S+c),k(e,"height",y+p));break;case re:r&&n&&Tt(r);break}}catch(m){console.error("Observing error:",m);}};window.addEventListener("message",i);}).then(()=>{if(Ke.has(t))return;Ke.add(t),n=Xe(e),new IntersectionObserver(a=>{n=a.some(l=>l.isIntersecting);},{threshold:.5}).observe(e);}).catch(s=>{throw console.error(s),s}).finally(()=>void Se.delete(t))}),Tt=e=>{let t=window.parent.location.href;vt__default.default.runtime.sendMessage({type:A.EXTERNAL_ADS_ACTIVITY_MESSAGE_TYPE,url:t,provider:ye[e]}).catch(n=>void console.error(n));},Xe=e=>{let t=e.getBoundingClientRect(),n=window.visualViewport;if(!n)return !1;let s=Math.min(Math.max(0,t.x),n.width),a=Math.min(Math.max(0,t.x+t.width),n.width),l=Math.min(Math.max(0,t.y),n.height),r=Math.min(Math.max(0,t.y+t.height),n.height),i=t.width*t.height;return (a-s)*(r-l)/i>=.5};var ae=(e,t)=>{for(let n in t)e.style.setProperty(n,t[n]);};var wt=(e,t)=>{["width","height"].forEach(s=>{var l;let a=(l=e.style[s])!=null?l:"";K.test(a)&&parseInt(a,10)<t[s]&&e.style.removeProperty(s);});},Je=e=>{let{adsMetadata:t,originalHeight:n,originalWidth:s,shouldUseBlurredBackground:a}=e,l=t[0],{dimensions:r}=typeof l=="number"?A.bannerAdsMeta[l]:l;return {width:a?Math.max(s,r.width):r.width,height:a?Math.max(n,r.height):r.height}},Mt=(e,t,n,s,a)=>T(void 0,null,function*(){let{elementStyle:l={},stylesOverrides:r=[],adsMetadata:i,wrapperType:o,adCategories:h,themeColor:d,fontSize:m,lineHeight:c}=e;r.sort((S,y)=>S.parentDepth-y.parentDepth);let p,g=nanoid.nanoid(),u=document.createElement("iframe");u.loading="lazy",u.src=A.getAdsStackIframeURL({id:g,adsMetadataIds:i,origin:window.location.href,adCategories:h,themeColor:d,fontSize:m,lineHeight:c,evmAccountAddress:A.evmAccountAddress,chainName:A.chainName}),u.id=g,u.allow=pe;let E=Je(e);u.style.width=o==="tbody"?"100%":`${E.width}px`,u.style.height=`${E.height}px`,u.style.border="none";for(let S in l)u.style.setProperty(S,l[S]);switch(u.setAttribute(z,"true"),n.appendChild(u),e.type){case"replace-all-children":p=e.parent,e.parent.innerHTML="",e.parent.appendChild(t);break;case"replace-element":p=e.element.parentElement,e.element.replaceWith(t);break;default:let S=e.parent.children[e.insertionIndex];if(e.isSiblingReplacement){t.setAttribute($,"true");let y=new MutationObserver(P=>{P.some(w=>Array.from(w.removedNodes).includes(S))&&(t.remove(),y.disconnect());});y.observe(e.parent,{childList:!0});}p=e.parent,e.parent.insertBefore(t,S);break}if(o!=="tbody"){let{borderLeftWidth:S,borderRightWidth:y,borderTopWidth:P,borderBottomWidth:I}=window.getComputedStyle(u),{borderLeftWidth:w,borderRightWidth:M,borderTopWidth:b,borderBottomWidth:H}=window.getComputedStyle(t),L=Q([S,y,w,M]),F=Q([P,I,b,H]);u.style.width=`${E.width-L}px`,u.style.height=`${E.height-F}px`;}Qe(u).then(s).catch(a);let f=0;r.forEach(({parentDepth:S,style:y})=>{for(;S>f&&p;)p=p.parentElement,f++;p&&ae(p,y);});}),qe={width:"0px",height:"0px",display:"block","overflow-x":"hidden","overflow-y":"hidden","max-block-size":"none","max-height":"none","max-inline-size":"none","max-width":"none","min-block-size":"0px","min-height":"0px","min-inline-size":"0px","min-width":"0px"},Ze=e=>T(void 0,null,function*(){let{wrapperStyle:t={},adsMetadata:n,wrapperType:s="div",colsAfter:a=0,colsBefore:l=0,colspan:r=1}=e,i=n.every(m=>typeof m=="object"),o,h;if(s==="div")o=document.createElement("div"),h=o;else {o=document.createElement("tbody");let m=document.createElement("tr");o.appendChild(m);for(let p=0;p<l;p++)m.appendChild(document.createElement("td"));let c=document.createElement("td");c.colSpan=r,m.appendChild(c),h=c;for(let p=0;p<a;p++)m.appendChild(document.createElement("td"));}o.setAttribute(z,"true"),o.setAttribute(ne,"true"),i&&o.setAttribute(te,"true"),ae(o,v(v({},t),qe));let d=()=>{for(let m of h.children)h.removeChild(m);};yield Mt(e,o,h,()=>{for(let m in qe)t[m]?o.style.setProperty(m,t[m]):o.style.removeProperty(m);wt(o,Je(e)),o.removeAttribute(ne);},m=>{console.error("Failed to render ads",m),d();}).catch(m=>{throw console.error("Inserting an ad attempt error:",m),d(),m});});var It=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 Ze(t);})));var ve=(e,t,n=!1)=>{let s=document.createElement("div");s.style.width=`${e}px`,s.style.height=`${t}px`;let a=document.createElement("div");if(a.style.width=`${e}px`,a.style.height=`${t}px`,s.appendChild(a),n){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")),a.appendChild(i),{element:s}}let l=document.createElement("a");l.href=A.SWAP_TKEY_URL,l.target="_blank",l.rel="noopener noreferrer",l.style.width="100%",l.style.height="100%",a.appendChild(l);let r=document.createElement("img");return r.src=e<=320?A.SMALL_TKEY_INPAGE_AD_URL:A.TKEY_INPAGE_AD_URL,r.style.width="100%",r.style.height="100%",l.appendChild(r),{element:s,creativeSet:{image:{url:r.src}}}};var Te=e=>{let{source:t,id:n,dimensions:s}=e,{width:a,height:l}=s,r=document.createElement("iframe");return r.id=n,r.src=bt(e),r.style.width=t.native?"100%":`${a}px`,r.style.height=`${l}px`,r.style.border="none",r.allow=pe,{element:r}},_t={height:"h",slug:"p",ps:"ps",id:"id",themeColor:"tc",fontSize:"fs",lineHeight:"lh",evmAccountAddress:"ea",chainName:"cn"},bt=a=>{var l=a,{source:e,origin:t,dimensions:n}=l,s=x(l,["source","origin","dimensions"]);let{width:r,height:i}=n,{providerName:o,slug:h,native:d}=e,m=new URL(A.ADS_TW_WINDOW_URL),c=(p,g)=>{m.searchParams.set(p,String(g));};return c("ps",A.HYPELAB_PROPERTY_SLUG),c("ap",o.toLowerCase()),d?c("vh",i):c("w",r),Object.entries(v({height:i,slug:h},s)).forEach(([p,g])=>{(g||g===0)&&c(_t[p],g);}),c("o",Lt(t)),m.toString()},Lt=e=>cryptoJs.AES.encrypt(e,A.TEMPLE_PASSPHRASE).toString();var Pe=class{constructor(d){this.wasReady=!1;this.rootElement=document.getElementById("root");this.validAdsCounter=0;var m=d,{id:t,initialAdsMetadata:n,origin:s,pageHasPlacesRules:a,adCategories:l,hypelabBlacklistedCampaignsSlugs:r,evmAccountAddress:i,chainName:o}=m,h=x(m,["id","initialAdsMetadata","origin","pageHasPlacesRules","adCategories","hypelabBlacklistedCampaignsSlugs","evmAccountAddress","chainName"]);this.id=t,this.origin=s,this.pageHasPlacesRules=a,this.adCategories=l,this.hypelabBlacklistedCampaignsSlugs=r,this.adThemeParams=h,this.evmAccountAddress=i,this.chainName=o,this.adsMetadata=n.map(c=>typeof c=="number"?A.bannerAdsMeta[c]:c);}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:ce,adMetadata:this.currentAdMetadata});let{element:n,creativeSet:s}=this.placeNewAd(t);n instanceof HTMLIFrameElement?this.listenToIframeMessages(n,t):this.handleValidAd({ad:{creative_set:s}});}listenToIframeMessages(t,n){let s=A.pickNextAdMetadata(this.adsMetadata,n,this.validAdsCounter,this.pageHasPlacesRules,this.adCategories);this.responseTimeout=setTimeout(()=>{console.error(`Timeout exceeded for ${this.id}, ad source: ${JSON.stringify(n.source)}`),this.handleInvalidAd();},(s?1e4:2e4)*(A.IS_MISES_BROWSER?2:1)),this.messageListener=a=>{var l;if(a.source===t.contentWindow)try{let r=typeof a.data=="string"?JSON.parse(a.data):a.data;switch(r.type){case se:if(n.source.providerName==="HypeLab"&&this.hypelabBlacklistedCampaignsSlugs.includes((l=r.ad)==null?void 0:l.campaign_slug)&&s){this.handleInvalidAd();break}this.handleValidAd(r);break;case ie:this.wasReady||this.handleInvalidAd();break;case me:let{width:i,height:o}=r;i>0&&o>0&&(n.source.native?t.style.height=`${o}px`:(k(t,"width",i),k(t,"height",o)),this.broadcastMessage(N(v({},r),{id:this.id})));break;case re:this.broadcastMessage({id:this.id,type:re});}}catch(r){console.error("Message handling error:",r);}},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:n,dimensions:s}=t,a;switch(n.providerName){case"Temple":a=ve(s.width,s.height,n.native);break;case"HypeLab":case"Bitmedia":a=Te(v({id:this.id,source:n,dimensions:s,origin:this.origin,evmAccountAddress:this.evmAccountAddress,chainName:this.chainName},this.adThemeParams));break;default:throw new Error(`Unsupported ad provider: ${n.providerName}`)}let{element:l}=a,r=document.getElementById("temple-label");return this.rootElement.replaceChildren(l),n.native?r.removeAttribute("active"):r.setAttribute("active",""),a}updateBackground(t,n={}){let s=document.getElementById(ge);if(t.native&&s&&this.rootElement.removeChild(s),!t.native){try{let{image:a,video:l}=n,r;if(a?(r=document.createElement("img"),r.src=a.url,r.alt=""):l&&(r=document.createElement("video"),r.src=l.url,r.autoplay=!0,r.preload="auto",r.playsInline=!0,r.muted=!0,r.loop=!0),!r&&s&&this.rootElement.removeChild(s),!r)return;r.id=ge,r.style.zIndex="-1",ae(r,{position:"absolute",top:"0px",left:"0px",right:"0px",bottom:"0px",width:"100%",height:"100%","object-fit":"cover",filter:"blur(12px)"}),s?this.rootElement.replaceChild(r,s):this.rootElement.prepend(r);}catch(a){console.error(a);}document.body.style.backgroundColor="transparent";}}broadcastMessage(t){window.parent.postMessage(JSON.stringify(t),"*");}broadcastNoMoreAds(){this.broadcastMessage({id:this.id,type:ie,reason:"No more ads to render"});}clearResponseTimeout(){this.responseTimeout!==void 0&&(clearTimeout(this.responseTimeout),this.responseTimeout=void 0);}handleValidAd(t){var s;let n=this.currentAdMetadata;n&&(this.wasReady||(this.wasReady=!0,this.broadcastMessage({id:this.id,type:se,adMetadata:n})),this.validAdsCounter++,this.clearResponseTimeout(),this.updateBackground(n.source,(s=t.ad)==null?void 0:s.creative_set));}},Nt=e=>{try{new Pe(e).startRendering();}catch(t){console.error("Error while rendering ads stack:",t);}};var Ht=(e,t)=>{let{adPlacesRulesForAllDomains:n,providersRulesForAllDomains:s,providersSelectors:a,providersNegativeSelectors:l={},providersToReplaceAtAllSites:r,permanentAdPlacesRulesForAllDomains:i,permanentNativeAdPlacesRulesForAllDomains:o={},adsReplaceUrlsBlacklist:h=[],elementsToHideOrRemoveRules:d={},providersCategories:m={},blacklistedHypelabCampaignsSlugs:c=[],timestamp:p}=t,g=typeof e=="string"?e:e.href,{hostname:u}=new URL(g);if(h.some(S=>new RegExp(S).test(g)))return {adPlacesRules:[],permanentAdPlacesRules:[],providersSelectors:[],providersNegativeSelectors:[],elementsToHideOrRemoveRules:[],blacklistedHypelabCampaignsSlugs:c,timestamp:p};let E=g.replace(/#.*$/,""),f=S=>{let y=S.source.includes("#")?g:E;return S.test(y)};return {adPlacesRules:Dt(u,f,n),permanentAdPlacesRules:Bt(u,f,i,o),providersSelectors:nt(u,f,s,a,r,m),providersNegativeSelectors:nt(u,f,s,l,r,m),elementsToHideOrRemoveRules:Ct(u,f,d),blacklistedHypelabCampaignsSlugs:c,timestamp:p}},Ct=(e,t,n)=>{var s;return ((s=n[e])!=null?s:[]).map(r=>{var i=r,{urlRegexes:a}=i,l=x(i,["urlRegexes"]);return N(v({},l),{urlRegexes:a.map(o=>new RegExp(o))})}).filter(({urlRegexes:a})=>a.some(t))},Dt=(e,t,n)=>{var l;return ((l=n[e])!=null?l:[]).map(o=>{var h=o,{urlRegexes:r}=h,i=x(h,["urlRegexes"]);return N(v({},i),{urlRegexes:r.map(d=>new RegExp(d))})}).reduce((r,d)=>{var m=d,{urlRegexes:i,selector:o}=m,h=x(m,["urlRegexes","selector"]);if(!i.some(t))return r;let u=o,{cssString:c}=u,p=x(u,["cssString"]),g=r.findIndex(S=>{var y=S,{selector:E}=y,f=x(y,["selector"]);let w=E,I=x(w,["cssString"]);return lodash.isEqual(p,I)&&lodash.isEqual(h,f)});return g===-1?r.push(v({selector:o},h)):r[g].selector.cssString+=", ".concat(c),r},[])},tt=e=>l=>{var r=l,{urlRegexes:t,elementToMeasureSelector:n,elementsToMeasureSelectors:s}=r,a=x(r,["urlRegexes","elementToMeasureSelector","elementsToMeasureSelectors"]);return N(v({},a),{urlRegexes:t.map(i=>new RegExp(i)),isNative:e,elementsToMeasureSelectors:s!=null?s:n?{width:n,height:n}:void 0})},Bt=(e,t,n,s={})=>{var i,o;let a=(i=n[e])!=null?i:[],l=(o=s[e])!=null?o:[];return a.map(tt(!1)).concat(l.map(tt(!0))).filter(({urlRegexes:h})=>h.some(t))};function Ot(e){let t="";return e.forEach(n=>{t+=n+", ";}),t&&(t=t.slice(0,-2)),t}var nt=(e,t,n,s,a,l)=>{var m;let i=((m=n[e])!=null?m:[]).map(g=>{var u=g,{urlRegexes:c}=u,p=x(u,["urlRegexes"]);return N(v({},p),{urlRegexes:c.map(E=>new RegExp(E))})}).filter(({urlRegexes:c})=>c.some(t)),o=new Set,h={},d=c=>{var u,E;if(o.has(c))return;let p=((u=l[c])!=null?u:[_]).join("|");((E=s[c])!=null?E:[]).forEach(f=>{let{selector:S,parentDepth:y}=typeof f=="string"?{selector:f,parentDepth:0}:f;h[p]||(h[p]={});let P=h[p];P[y]||(P[y]=new Set),P[y].add(S);}),o.add(c);};return a.forEach(d),i.forEach(({providers:c})=>c.forEach(d)),Object.entries(h).map(([c,p])=>Object.entries(p).map(([g,u])=>({parentDepth:Number(g),selector:Ot(u),categories:c.split("|")}))).flat()};var D=e=>(...t)=>T(void 0,null,function*(){let{data:n}=yield e(...t);return n}),we=class{constructor(t){this.getReplaceAdPlacesRulesForAllDomains=D(()=>this.api.get(this.getApiPath("/ad-places/replace",!1)));this.getProvidersToReplaceAtAllSites=D(()=>this.api.get(this.getApiPath("/providers/all-sites",!1)));this.getProvidersCategories=D(()=>this.api.get(this.getApiPath("/providers/categories",!1)));this.getProvidersRulesForAllDomains=D(()=>this.api.get(this.getApiPath("/providers/by-sites",!1)));this.getSelectorsForAllProviders=D(()=>this.api.get(this.getApiPath("/providers/selectors",!0)));this.getNegativeSelectorsForAllProviders=D(()=>this.api.get(this.getApiPath("/providers/negative-selectors",!1)));this.getPermanentAdPlacesRulesForAllDomains=D(()=>this.api.get(this.getApiPath("/ad-places/permanent",!1)));this.getPermanentNativeAdPlacesRulesForAllDomains=D(()=>this.api.get(this.getApiPath("/ad-places/permanent-native",!0)));this.getAdsReplaceUrlsBlacklist=D(()=>this.api.get(this.getApiPath("/replace-urls-blacklist",!1)));this.getElementsToHideOrRemoveRules=D(()=>this.api.get(this.getApiPath("/elements-to-hide-or-remove",!1)));this.getBlacklistedHypelabCampaignsSlugs=D(()=>this.api.get(this.getApiPath("/hypelab-campaigns-blacklist",!1)));this.getAllRules=()=>T(this,null,function*(){let[t,n,s,a,l,r,i,o,h,d,m]=yield Promise.all([this.getReplaceAdPlacesRulesForAllDomains(),this.getProvidersRulesForAllDomains(),this.getSelectorsForAllProviders(),this.getProvidersToReplaceAtAllSites(),this.getPermanentAdPlacesRulesForAllDomains(),this.getPermanentNativeAdPlacesRulesForAllDomains(),this.getAdsReplaceUrlsBlacklist(),this.getNegativeSelectorsForAllProviders(),this.getElementsToHideOrRemoveRules(),this.getProvidersCategories(),this.getBlacklistedHypelabCampaignsSlugs()]);return {adPlacesRulesForAllDomains:t,providersRulesForAllDomains:n,providersSelectors:s,providersToReplaceAtAllSites:a,permanentAdPlacesRulesForAllDomains:l,permanentNativeAdPlacesRulesForAllDomains:r,adsReplaceUrlsBlacklist:i,providersNegativeSelectors:o,elementsToHideOrRemoveRules:h,providersCategories:d,blacklistedHypelabCampaignsSlugs:m,timestamp:Date.now()}});this.api=Wt__default.default.create({baseURL:t,adapter:"fetch"});}getApiPath(t,n){return `/ads-rules/${A.EXTENSION_VERSION}${t}${n?A.IS_MISES_BROWSER?"/mises":"/no-mises":""}`}};
16
16
 
17
- exports.TempleAdsApi = Me;
18
- exports.configureAds = At;
19
- exports.executeAdsActions = xt;
20
- exports.getAdsActions = vt;
21
- exports.renderAdsStack = Ht;
22
- exports.transformRawRules = Ct;
17
+ exports.TempleAdsApi = we;
18
+ exports.configureAds = pt;
19
+ exports.executeAdsActions = It;
20
+ exports.getAdsActions = St;
21
+ exports.renderAdsStack = Nt;
22
+ exports.transformRawRules = Ht;
@@ -1,5 +1,4 @@
1
1
  import * as lodash from 'lodash';
2
- import memoizee from 'memoizee';
3
2
 
4
3
  /** Current page's domain with 'www' stripped off */
5
4
  declare const getCurrentPageDomain: (() => string) & lodash.MemoizedFunction;
@@ -12,36 +11,13 @@ interface ReferralTextIconRule {
12
11
  }
13
12
 
14
13
  interface AdsBrowserExtensionMessageTypeI {
15
- FetchTakeAdsReferrals: string;
16
14
  ReferralClick: string;
17
15
  }
18
16
 
19
- declare function processTakeAdsAnchors(supportedDomains: Set<string>, textIconRules: ReferralTextIconRule[], AdsBrowserExtensionMessageType: AdsBrowserExtensionMessageTypeI, redirectUrl?: string): Promise<undefined>;
20
-
21
17
  interface TempleReferralLinkItem {
22
18
  targetUrl: string;
23
19
  referralLink: string;
24
20
  }
25
21
  declare function processTempleAnchors(linkItems: TempleReferralLinkItem[], textIconRules: ReferralTextIconRule[], AdsBrowserExtensionMessageType: AdsBrowserExtensionMessageTypeI): Promise<undefined>;
26
22
 
27
- /**
28
- * API docs: https://docs.takeads.com
29
- */
30
- declare class TakeAdsClient {
31
- private publicKey;
32
- readonly apiUrl: string;
33
- private axios;
34
- constructor(publicKey: string, apiUrl?: string);
35
- affiliateLinks(websiteUrls: string[], subId?: string): Promise<TekeadsAffiliateResponse>;
36
- }
37
- declare const buildTakeadsClient: ((publicKey: string) => TakeAdsClient) & memoizee.Memoized<(publicKey: string) => TakeAdsClient>;
38
- interface TekeadsAffiliateResponse {
39
- data: AffiliateLink[];
40
- }
41
- interface AffiliateLink {
42
- iri: string;
43
- trackingLink: string;
44
- imageUrl: string | null;
45
- }
46
-
47
- export { buildTakeadsClient, getCurrentPageDomain, processTakeAdsAnchors, processTempleAnchors };
23
+ export { getCurrentPageDomain, processTempleAnchors };
@@ -1,19 +1,13 @@
1
1
  'use strict';
2
2
 
3
- var S = require('webextension-polyfill');
3
+ var L = require('webextension-polyfill');
4
4
  var lodash = require('lodash');
5
- var C = require('axios');
6
- var N = require('memoizee');
7
5
 
8
6
  function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
9
7
 
10
- var S__default = /*#__PURE__*/_interopDefault(S);
11
- var C__default = /*#__PURE__*/_interopDefault(C);
12
- var N__default = /*#__PURE__*/_interopDefault(N);
8
+ var L__default = /*#__PURE__*/_interopDefault(L);
13
9
 
14
- var d=(e,r,t)=>new Promise((l,a)=>{var n=i=>{try{o(t.next(i));}catch(f){a(f);}},m=i=>{try{o(t.throw(i));}catch(f){a(f);}},o=i=>i.done?l(i.value):Promise.resolve(i.value).then(n,m);o((t=t.apply(e,r)).next());});var c=process&&process.env&&process.env.NODE_ENV==="development",y=navigator.userAgent.includes("Macintosh"),I=e=>!!e;var x=lodash.memoize(()=>w(window.location.hostname,"www"));function w(e,r){return e.includes(`${r}.`)?e.slice(r.length+1):e}var E="data-tw-referral",R=e=>{let r=Array.from(document.querySelectorAll("a"));if(!r.length)throw new Error("No anchors found");return r.map(t=>{if(t.hasAttribute(E))return null;let l=U(t.href);if(!l||e&&!e.has(l))return null;let a=b(t.href);return a?{iri:a,aElem:t,urlDomain:l}:null}).filter(I)};function A(e,r,t,l,a){var T;let{aElem:n,urlDomain:m,referralUrl:o,imageUrl:i}=e,f=n.href,p=a?v(a,o):o;if(c&&console.info("Replacing referral:",f,"to",o,"for anchor:",n),n.setAttribute(E,"set"),n.onclick=s=>{s.preventDefault(),c&&console.log("Referral clicked:",f,"->",o),S__default.default.runtime.sendMessage({type:t.ReferralClick,urlDomain:m,pageDomain:x(),provider:l});let u=s.button===1||(y?s.metaKey:s.ctrlKey);window.open(p,u?"_blank":"_self");},n.oncontextmenu=()=>{n.href=p;let s=()=>{n.href=f,window.removeEventListener("focus",s);};window.addEventListener("focus",s);},!i)return;let h=x();for(let s of r){if(new RegExp(s.hostRegExStr).test(h)===!1)continue;let u=s.aChildSelector?n.querySelector(s.aChildSelector):null;if(u||(u=s.aMatchSelector&&n.matches(s.aMatchSelector)?n:null),!u)continue;let g=document.createElement("img");g.src=i,g.height=(T=s.iconHeight)!=null?T:20,g.style.display="inline-block",g.style.marginLeft="6px",g.style.verticalAlign="middle",u.appendChild(g);return}}function v(e,r){let t=new URL(e);return t.searchParams.set("url",r),t.toString()}function U(e){try{return w(new URL(e).hostname,"www")}catch(r){return null}}function b(e){try{let r=new URL(e);return r.origin+r.pathname}catch(r){return null}}function M(e,r,t,l){return d(this,null,function*(){let a=R(e);if(!a.length)return void(c&&console.info("Nothing to replace"));let n=a.map(o=>o.iri),m=yield S__default.default.runtime.sendMessage({type:t.FetchTakeAdsReferrals,links:n});if(!m.data.length)return void(c&&console.info("No referrals received"));c&&console.info("Replacing",m.data.length,"referralas");for(let{iri:o,aElem:i,urlDomain:f}of a){let p=m.data.find(s=>s.iri===o),h=p==null?void 0:p.trackingLink;if(!h){c&&console.warn("No affiliate link for",i);continue}let T=p.imageUrl;A({iri:o,aElem:i,urlDomain:f,referralUrl:h,imageUrl:T},r,t,"TakeAds",l);}})}function _(e,r,t){return d(this,null,function*(){let l=R();if(!l.length)return void(c&&console.info("Nothing to replace"));for(let{iri:a,aElem:n,urlDomain:m}of l){let o=e.find(p=>p.targetUrl===a),i=o==null?void 0:o.referralLink;if(!i){c&&console.warn("No affiliate link for",n);continue}A({iri:a,aElem:n,urlDomain:m,referralUrl:i,imageUrl:"https://raw.githubusercontent.com/madfish-solutions/templewallet-extension/development/public/misc/icon-128.png"},r,t,"Temple");}})}var k=class{constructor(r,t="https://api.takeads.com"){this.publicKey=r;this.apiUrl=t;this.axios=C__default.default.create({baseURL:t,headers:{Authorization:`Bearer ${this.publicKey}`},adapter:"fetch"});}affiliateLinks(r,t){return d(this,null,function*(){return (yield this.axios.put("/v1/product/monetize-api/v2/resolve",{iris:r,subId:t,withImages:!0})).data})}},B=N__default.default(e=>new k(e),{max:2});
10
+ var w=(e,r,t)=>new Promise((c,l)=>{var n=i=>{try{s(t.next(i));}catch(a){l(a);}},p=i=>{try{s(t.throw(i));}catch(a){l(a);}},s=i=>i.done?c(i.value):Promise.resolve(i.value).then(n,p);s((t=t.apply(e,r)).next());});var m=process&&process.env&&process.env.NODE_ENV==="development",x=navigator.userAgent.includes("Macintosh"),R=e=>!!e;var h=lodash.memoize(()=>d(window.location.hostname,"www"));function d(e,r){return e.includes(`${r}.`)?e.slice(r.length+1):e}var E="data-tw-referral",y=e=>{let r=Array.from(document.querySelectorAll("a"));if(!r.length)throw new Error("No anchors found");return r.map(t=>{if(t.hasAttribute(E))return null;let c=U(t.href);if(!c||e&&!e.has(c))return null;let l=_(t.href);return l?{iri:l,aElem:t,urlDomain:c}:null}).filter(R)};function A(e,r,t,c,l){var T;let{aElem:n,urlDomain:p,referralUrl:s,imageUrl:i}=e,a=n.href,g=l?D(l,s):s;if(m&&console.info("Replacing referral:",a,"to",s,"for anchor:",n),n.setAttribute(E,"set"),n.onclick=o=>{o.preventDefault(),m&&console.log("Referral clicked:",a,"->",s),L__default.default.runtime.sendMessage({type:t.ReferralClick,urlDomain:p,pageDomain:h(),provider:c});let u=o.button===1||(x?o.metaKey:o.ctrlKey);window.open(g,u?"_blank":"_self");},n.oncontextmenu=()=>{n.href=g;let o=()=>{n.href=a,window.removeEventListener("focus",o);};window.addEventListener("focus",o);},!i)return;let S=h();for(let o of r){if(new RegExp(o.hostRegExStr).test(S)===!1)continue;let u=o.aChildSelector?n.querySelector(o.aChildSelector):null;if(u||(u=o.aMatchSelector&&n.matches(o.aMatchSelector)?n:null),!u)continue;let f=document.createElement("img");f.src=i,f.height=(T=o.iconHeight)!=null?T:20,f.style.display="inline-block",f.style.marginLeft="6px",f.style.verticalAlign="middle",u.appendChild(f);return}}function D(e,r){let t=new URL(e);return t.searchParams.set("url",r),t.toString()}function U(e){try{return d(new URL(e).hostname,"www")}catch(r){return null}}function _(e){try{let r=new URL(e);return r.origin+r.pathname}catch(r){return null}}function k(e,r,t){return w(this,null,function*(){let c=y();if(!c.length)return void(m&&console.info("Nothing to replace"));for(let{iri:l,aElem:n,urlDomain:p}of c){let s=e.find(g=>g.targetUrl===l),i=s==null?void 0:s.referralLink;if(!i){m&&console.warn("No affiliate link for",n);continue}A({iri:l,aElem:n,urlDomain:p,referralUrl:i,imageUrl:"https://raw.githubusercontent.com/madfish-solutions/templewallet-extension/development/public/misc/icon-128.png"},r,t,"Temple");}})}
15
11
 
16
- exports.buildTakeadsClient = B;
17
- exports.getCurrentPageDomain = x;
18
- exports.processTakeAdsAnchors = M;
19
- exports.processTempleAnchors = _;
12
+ exports.getCurrentPageDomain = h;
13
+ exports.processTempleAnchors = k;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@temple-wallet/extension-ads",
3
- "version": "15.0.2",
3
+ "version": "16.0.0",
4
4
  "main": "dist/index.js",
5
5
  "repository": {
6
6
  "type": "git",
@@ -19,7 +19,6 @@ interface IAdsConfiguration {
19
19
  smallTkeyInpageAdUrl?: string;
20
20
  swapTkeyUrl: string;
21
21
  externalAdsActivityMessageType: string;
22
- personaIframePath: string;
23
22
  getAdsStackIframeURL: (params: AdsStackIframeURLParams) => string;
24
23
  buildNativeAdsMeta: (containerWidth: number, containerHeight: number) => AdMetadata[];
25
24
  bannerAdsMeta: AdMetadata[];
@@ -45,7 +44,6 @@ export class AdsConfiguration {
45
44
  static SMALL_TKEY_INPAGE_AD_URL = '';
46
45
  static SWAP_TKEY_URL = '';
47
46
  static EXTERNAL_ADS_ACTIVITY_MESSAGE_TYPE = '';
48
- static personaIframePath: IAdsConfiguration['personaIframePath'] = '';
49
47
  static getAdsStackIframeURL: IAdsConfiguration['getAdsStackIframeURL'] = () => '';
50
48
  static buildNativeAdsMeta: IAdsConfiguration['buildNativeAdsMeta'] = () => [];
51
49
  static pickNextAdMetadata: IAdsConfiguration['pickNextAdMetadata'] = () => undefined;
@@ -64,7 +62,6 @@ export const configureAds = (config: IAdsConfiguration) => {
64
62
  smallTkeyInpageAdUrl,
65
63
  swapTkeyUrl,
66
64
  externalAdsActivityMessageType,
67
- personaIframePath,
68
65
  getAdsStackIframeURL,
69
66
  buildNativeAdsMeta,
70
67
  bannerAdsMeta,
@@ -85,7 +82,6 @@ export const configureAds = (config: IAdsConfiguration) => {
85
82
  AdsConfiguration.TKEY_INPAGE_AD_URL = tkeyInpageAdUrl;
86
83
  AdsConfiguration.SWAP_TKEY_URL = swapTkeyUrl;
87
84
  AdsConfiguration.EXTERNAL_ADS_ACTIVITY_MESSAGE_TYPE = externalAdsActivityMessageType;
88
- AdsConfiguration.personaIframePath = personaIframePath;
89
85
  AdsConfiguration.getAdsStackIframeURL = getAdsStackIframeURL;
90
86
  AdsConfiguration.buildNativeAdsMeta = buildNativeAdsMeta;
91
87
  AdsConfiguration.pickNextAdMetadata = pickNextAdMetadata;
@@ -1,3 +1,2 @@
1
1
  export { makeTKeyAdView } from './make-tkey-ad';
2
2
  export { makeAdsTwView } from './make-ads-tw-view';
3
- export { makeExtensionIframeView } from './make-extension-iframe-view';
@@ -7,7 +7,6 @@ import { getCurrentPageDomain, ReferralTextIconRule, stripSubdomain } from './ut
7
7
  const TEMPLE_WALLET_ANCHOR_ATTRIBUTE = 'data-tw-referral';
8
8
 
9
9
  export interface AdsBrowserExtensionMessageTypeI {
10
- FetchTakeAdsReferrals: string;
11
10
  ReferralClick: string;
12
11
  }
13
12
 
@@ -42,7 +41,7 @@ export function processAnchorElement(
42
41
  item: PreppedItem,
43
42
  textIconRules: ReferralTextIconRule[],
44
43
  AdsBrowserExtensionMessageType: AdsBrowserExtensionMessageTypeI,
45
- provider: 'TakeAds' | 'Temple',
44
+ provider: 'Temple',
46
45
  redirectUrl?: string
47
46
  ) {
48
47
  const { aElem, urlDomain, referralUrl, imageUrl } = item;
@@ -1,7 +1,3 @@
1
- export { processTakeAdsAnchors } from './replace-takeads';
2
-
3
1
  export { processTempleAnchors } from './replace-temple';
4
2
 
5
- export { buildTakeadsClient } from './takeads';
6
-
7
3
  export { getCurrentPageDomain } from './utils';
@@ -8,7 +8,7 @@ import {
8
8
  AD_RESIZE_MESSAGE_TYPE,
9
9
  BACKGROUND_ELEMENT_ID
10
10
  } from './constants';
11
- import { makeAdsTwView, makeExtensionIframeView, makeTKeyAdView } from './execute-ads-actions/ads-views';
11
+ import { makeAdsTwView, makeTKeyAdView } from './execute-ads-actions/ads-views';
12
12
  import { AdThemeParams } from './execute-ads-actions/ads-views/make-ads-tw-view';
13
13
  import { overrideElementStyles } from './execute-ads-actions/override-element-styles';
14
14
  import { AdView, CreativeSet } from './types/ad-view';
@@ -201,7 +201,7 @@ class AdsStack {
201
201
  });
202
202
  break;
203
203
  default:
204
- adView = makeExtensionIframeView(this.id, source, dimensions);
204
+ throw new Error(`Unsupported ad provider: ${source.providerName}`);
205
205
  }
206
206
 
207
207
  const { element } = adView;
@@ -1,6 +1,6 @@
1
1
  export interface AdSource {
2
2
  shouldNotUseStrictContainerLimits?: boolean;
3
- providerName: 'Temple' | 'Persona' | 'HypeLab' | 'Bitmedia';
3
+ providerName: 'Temple' | 'HypeLab' | 'Bitmedia';
4
4
  native?: boolean;
5
5
  slug: string;
6
6
  categories?: string[];
@@ -1,6 +1,5 @@
1
1
  export enum AdsProviderTitle {
2
2
  HypeLab = 'HypeLab',
3
- Persona = 'Persona',
4
3
  Temple = 'Temple Wallet',
5
4
  Bitmedia = 'Bitmedia'
6
5
  }
@@ -1,26 +0,0 @@
1
- import { AdsConfiguration } from 'src/ads-configuration';
2
- import { AdView } from 'src/types/ad-view';
3
- import { AdDimensions, AdSource } from 'src/types/ads-meta';
4
-
5
- export const makeExtensionIframeView = (id: string, source: AdSource, { width, height }: AdDimensions): AdView => {
6
- const element = document.createElement('iframe');
7
- let iframePath = '';
8
- switch (source.providerName) {
9
- case 'Persona':
10
- iframePath = AdsConfiguration.personaIframePath;
11
- break;
12
- default:
13
- throw new Error(`Ads from ${source.providerName} are unavailable via extension iframe`);
14
- }
15
- const iframeUrl = new URL(iframePath);
16
- iframeUrl.searchParams.set('id', id);
17
- iframeUrl.searchParams.set('slug', source.slug);
18
- element.src = iframeUrl.toString();
19
- element.id = id;
20
-
21
- element.style.width = `${width}px`;
22
- element.style.height = `${height}px`;
23
- element.style.border = 'none';
24
-
25
- return { element };
26
- };
@@ -1,52 +0,0 @@
1
- import browser from 'webextension-polyfill';
2
-
3
- import { IS_DEV } from 'src/utils';
4
-
5
- import { AdsBrowserExtensionMessageTypeI, getItemsToReplace, processAnchorElement } from './common';
6
- import type { TekeadsAffiliateResponse } from './takeads';
7
- import { ReferralTextIconRule } from './utils';
8
-
9
- export async function processTakeAdsAnchors(
10
- supportedDomains: Set<string>,
11
- textIconRules: ReferralTextIconRule[],
12
- AdsBrowserExtensionMessageType: AdsBrowserExtensionMessageTypeI,
13
- redirectUrl?: string
14
- ) {
15
- const items = getItemsToReplace(supportedDomains);
16
-
17
- if (!items.length) return void (IS_DEV && console.info('Nothing to replace'));
18
-
19
- const links = items.map(l => l.iri);
20
-
21
- // Not requesting directly in content script because of CORS.
22
- const takeadsItems: TekeadsAffiliateResponse = await browser.runtime.sendMessage({
23
- type: AdsBrowserExtensionMessageType.FetchTakeAdsReferrals,
24
- links
25
- });
26
-
27
- if (!takeadsItems.data.length) return void (IS_DEV && console.info('No referrals received'));
28
-
29
- IS_DEV && console.info('Replacing', takeadsItems.data.length, 'referralas');
30
-
31
- for (const { iri, aElem, urlDomain } of items) {
32
- const data = takeadsItems.data.find(item => item.iri === iri);
33
- const referralUrl = data?.trackingLink;
34
-
35
- if (!referralUrl) {
36
- IS_DEV && console.warn('No affiliate link for', aElem);
37
- continue;
38
- }
39
-
40
- const imageUrl = data.imageUrl;
41
-
42
- processAnchorElement(
43
- { iri, aElem, urlDomain, referralUrl, imageUrl },
44
- textIconRules,
45
- AdsBrowserExtensionMessageType,
46
- 'TakeAds',
47
- redirectUrl
48
- );
49
- }
50
-
51
- return;
52
- }
@@ -1,44 +0,0 @@
1
- import axios, { AxiosInstance } from 'axios';
2
- import memoizee from 'memoizee';
3
-
4
- /**
5
- * API docs: https://docs.takeads.com
6
- */
7
- class TakeAdsClient {
8
- private axios: AxiosInstance;
9
-
10
- constructor(
11
- private publicKey: string,
12
- readonly apiUrl: string = 'https://api.takeads.com'
13
- ) {
14
- this.axios = axios.create({
15
- baseURL: apiUrl,
16
- headers: {
17
- Authorization: `Bearer ${this.publicKey}`
18
- },
19
- adapter: 'fetch'
20
- });
21
- }
22
-
23
- async affiliateLinks(websiteUrls: string[], subId?: string) {
24
- const response = await this.axios.put<TekeadsAffiliateResponse>('/v1/product/monetize-api/v2/resolve', {
25
- iris: websiteUrls,
26
- subId,
27
- withImages: true
28
- });
29
-
30
- return response.data;
31
- }
32
- }
33
-
34
- export const buildTakeadsClient = memoizee((publicKey: string) => new TakeAdsClient(publicKey), { max: 2 });
35
-
36
- export interface TekeadsAffiliateResponse {
37
- data: AffiliateLink[];
38
- }
39
-
40
- interface AffiliateLink {
41
- iri: string;
42
- trackingLink: string;
43
- imageUrl: string | null;
44
- }