@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 +1 -3
- package/dist/index.js +11 -11
- package/dist/referrals/index.d.ts +1 -25
- package/dist/referrals/index.js +5 -11
- package/package.json +1 -1
- package/src/ads-configuration.ts +0 -4
- package/src/execute-ads-actions/ads-views/index.ts +0 -1
- package/src/referrals/common.ts +1 -2
- package/src/referrals/index.ts +0 -4
- package/src/render-ads-stack.ts +2 -2
- package/src/types/ads-meta.ts +1 -1
- package/src/types/ads-provider.ts +0 -1
- package/src/execute-ads-actions/ads-views/make-extension-iframe-view.ts +0 -26
- package/src/referrals/replace-takeads.ts +0 -52
- package/src/referrals/takeads.ts +0 -44
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' | '
|
|
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
|
|
6
|
+
var vt = require('webextension-polyfill');
|
|
7
7
|
var cryptoJs = require('crypto-js');
|
|
8
|
-
var
|
|
8
|
+
var Wt = require('axios');
|
|
9
9
|
|
|
10
10
|
function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
|
|
11
11
|
|
|
12
|
-
var
|
|
13
|
-
var
|
|
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 =
|
|
18
|
-
exports.configureAds =
|
|
19
|
-
exports.executeAdsActions =
|
|
20
|
-
exports.getAdsActions =
|
|
21
|
-
exports.renderAdsStack =
|
|
22
|
-
exports.transformRawRules =
|
|
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 };
|
package/dist/referrals/index.js
CHANGED
|
@@ -1,19 +1,13 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var
|
|
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
|
|
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
|
|
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.
|
|
17
|
-
exports.
|
|
18
|
-
exports.processTakeAdsAnchors = M;
|
|
19
|
-
exports.processTempleAnchors = _;
|
|
12
|
+
exports.getCurrentPageDomain = h;
|
|
13
|
+
exports.processTempleAnchors = k;
|
package/package.json
CHANGED
package/src/ads-configuration.ts
CHANGED
|
@@ -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;
|
package/src/referrals/common.ts
CHANGED
|
@@ -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: '
|
|
44
|
+
provider: 'Temple',
|
|
46
45
|
redirectUrl?: string
|
|
47
46
|
) {
|
|
48
47
|
const { aElem, urlDomain, referralUrl, imageUrl } = item;
|
package/src/referrals/index.ts
CHANGED
package/src/render-ads-stack.ts
CHANGED
|
@@ -8,7 +8,7 @@ import {
|
|
|
8
8
|
AD_RESIZE_MESSAGE_TYPE,
|
|
9
9
|
BACKGROUND_ELEMENT_ID
|
|
10
10
|
} from './constants';
|
|
11
|
-
import { makeAdsTwView,
|
|
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
|
-
|
|
204
|
+
throw new Error(`Unsupported ad provider: ${source.providerName}`);
|
|
205
205
|
}
|
|
206
206
|
|
|
207
207
|
const { element } = adView;
|
package/src/types/ads-meta.ts
CHANGED
|
@@ -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
|
-
}
|
package/src/referrals/takeads.ts
DELETED
|
@@ -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
|
-
}
|