@temple-wallet/extension-ads 13.0.2 → 15.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 -0
- package/dist/index.js +3 -3
- package/dist/referrals/index.d.ts +10 -3
- package/dist/referrals/index.js +10 -9
- package/package.json +1 -1
- package/src/ads-configuration.ts +4 -0
- package/src/execute-ads-actions/ads-views/make-ads-tw-view.ts +3 -0
- package/src/referrals/{replace.ts → common.ts} +13 -52
- package/src/referrals/index.ts +3 -1
- package/src/referrals/replace-takeads.ts +52 -0
- package/src/referrals/replace-temple.ts +41 -0
- package/dist/ads-actions/helpers.d.ts +0 -19
- package/dist/ads-actions/helpers.js +0 -119
- package/dist/ads-actions/helpers.js.map +0 -1
- package/dist/ads-actions/index.d.ts +0 -3
- package/dist/ads-actions/index.js +0 -64
- package/dist/ads-actions/index.js.map +0 -1
- package/dist/ads-actions/process-elements-to-hide-or-remove-rule.d.ts +0 -3
- package/dist/ads-actions/process-elements-to-hide-or-remove-rule.js +0 -19
- package/dist/ads-actions/process-elements-to-hide-or-remove-rule.js.map +0 -1
- package/dist/ads-actions/process-permanent-rule.d.ts +0 -3
- package/dist/ads-actions/process-permanent-rule.js +0 -150
- package/dist/ads-actions/process-permanent-rule.js.map +0 -1
- package/dist/ads-actions/process-providers-ads.d.ts +0 -3
- package/dist/ads-actions/process-providers-ads.js +0 -155
- package/dist/ads-actions/process-providers-ads.js.map +0 -1
- package/dist/ads-actions/process-rule.d.ts +0 -3
- package/dist/ads-actions/process-rule.js +0 -100
- package/dist/ads-actions/process-rule.js.map +0 -1
- package/dist/ads-configuration.d.ts +0 -42
- package/dist/ads-configuration.js +0 -32
- package/dist/ads-configuration.js.map +0 -1
- package/dist/constants.d.ts +0 -12
- package/dist/constants.js +0 -13
- package/dist/constants.js.map +0 -1
- package/dist/execute-ads-actions/ads-views/index.d.ts +0 -3
- package/dist/execute-ads-actions/ads-views/index.js +0 -4
- package/dist/execute-ads-actions/ads-views/index.js.map +0 -1
- package/dist/execute-ads-actions/ads-views/make-ads-tw-view.d.ts +0 -15
- package/dist/execute-ads-actions/ads-views/make-ads-tw-view.js +0 -62
- package/dist/execute-ads-actions/ads-views/make-ads-tw-view.js.map +0 -1
- package/dist/execute-ads-actions/ads-views/make-extension-iframe-view.d.ts +0 -3
- package/dist/execute-ads-actions/ads-views/make-extension-iframe-view.js +0 -22
- package/dist/execute-ads-actions/ads-views/make-extension-iframe-view.js.map +0 -1
- package/dist/execute-ads-actions/ads-views/make-tkey-ad.d.ts +0 -3
- package/dist/execute-ads-actions/ads-views/make-tkey-ad.js +0 -38
- package/dist/execute-ads-actions/ads-views/make-tkey-ad.js.map +0 -1
- package/dist/execute-ads-actions/index.d.ts +0 -2
- package/dist/execute-ads-actions/index.js +0 -23
- package/dist/execute-ads-actions/index.js.map +0 -1
- package/dist/execute-ads-actions/observing.d.ts +0 -1
- package/dist/execute-ads-actions/observing.js +0 -131
- package/dist/execute-ads-actions/observing.js.map +0 -1
- package/dist/execute-ads-actions/override-element-styles.d.ts +0 -2
- package/dist/execute-ads-actions/override-element-styles.js +0 -6
- package/dist/execute-ads-actions/override-element-styles.js.map +0 -1
- package/dist/execute-ads-actions/process-insert-ad-action.d.ts +0 -2
- package/dist/execute-ads-actions/process-insert-ad-action.js +0 -193
- package/dist/execute-ads-actions/process-insert-ad-action.js.map +0 -1
- package/dist/index.js.map +0 -1
- package/dist/referrals/common.d.ts +0 -19
- package/dist/referrals/common.js +0 -97
- package/dist/referrals/common.js.map +0 -1
- package/dist/referrals/index.js.map +0 -1
- package/dist/referrals/replace-takeads.d.ts +0 -3
- package/dist/referrals/replace-takeads.js +0 -40
- package/dist/referrals/replace-takeads.js.map +0 -1
- package/dist/referrals/replace-temple.d.ts +0 -8
- package/dist/referrals/replace-temple.js +0 -30
- package/dist/referrals/replace-temple.js.map +0 -1
- package/dist/referrals/takeads.d.ts +0 -21
- package/dist/referrals/takeads.js +0 -39
- package/dist/referrals/takeads.js.map +0 -1
- package/dist/referrals/utils.d.ts +0 -11
- package/dist/referrals/utils.js +0 -12
- package/dist/referrals/utils.js.map +0 -1
- package/dist/render-ads-stack.d.ts +0 -17
- package/dist/render-ads-stack.js +0 -231
- package/dist/render-ads-stack.js.map +0 -1
- package/dist/temple-ads-api.d.ts +0 -24
- package/dist/temple-ads-api.js +0 -68
- package/dist/temple-ads-api.js.map +0 -1
- package/dist/transform-raw-rules.d.ts +0 -3
- package/dist/transform-raw-rules.js +0 -140
- package/dist/transform-raw-rules.js.map +0 -1
- package/dist/types/ad-view.d.ts +0 -7
- package/dist/types/ad-view.js +0 -2
- package/dist/types/ad-view.js.map +0 -1
- package/dist/types/ads-actions.d.ts +0 -61
- package/dist/types/ads-actions.js +0 -15
- package/dist/types/ads-actions.js.map +0 -1
- package/dist/types/ads-meta.d.ts +0 -19
- package/dist/types/ads-meta.js +0 -2
- package/dist/types/ads-meta.js.map +0 -1
- package/dist/types/ads-provider.d.ts +0 -7
- package/dist/types/ads-provider.js +0 -8
- package/dist/types/ads-provider.js.map +0 -1
- package/dist/types/ads-rules.d.ts +0 -27
- package/dist/types/ads-rules.js +0 -2
- package/dist/types/ads-rules.js.map +0 -1
- package/dist/types/temple-wallet-api.d.ts +0 -83
- package/dist/types/temple-wallet-api.js +0 -2
- package/dist/types/temple-wallet-api.js.map +0 -1
- package/dist/utils.d.ts +0 -8
- package/dist/utils.js +0 -6
- package/dist/utils.js.map +0 -1
package/dist/index.d.ts
CHANGED
package/dist/index.js
CHANGED
|
@@ -12,11 +12,11 @@ function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
|
|
|
12
12
|
var Tt__default = /*#__PURE__*/_interopDefault(Tt);
|
|
13
13
|
var Ut__default = /*#__PURE__*/_interopDefault(Ut);
|
|
14
14
|
|
|
15
|
-
var dt=Object.defineProperty,ct=Object.defineProperties;var mt=Object.getOwnPropertyDescriptors;var le=Object.getOwnPropertySymbols;var Oe=Object.prototype.hasOwnProperty,We=Object.prototype.propertyIsEnumerable;var Be=(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={}))Oe.call(t,n)&&Be(e,n,t[n]);if(le)for(var n of le(t))We.call(t,n)&&Be(e,n,t[n]);return e},N=(e,t)=>ct(e,mt(t));var x=(e,t)=>{var n={};for(var r in e)Oe.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(e!=null&&le)for(var r of le(e))t.indexOf(r)<0&&We.call(e,r)&&(n[r]=e[r]);return n};var T=(e,t,n)=>new Promise((r,i)=>{var l=a=>{try{o(n.next(a));}catch(m){i(m);}},s=a=>{try{o(n.throw(a));}catch(m){i(m);}},o=a=>a.done?r(a.value):Promise.resolve(a.value).then(l,s);o((n=n.apply(e,t)).next());});process&&process.env&&process.env.NODE_ENV==="development";navigator.userAgent.includes("Macintosh");var ke=e=>!!e,pt=300,B=(e=pt)=>new Promise(t=>setTimeout(t,e));var A=class{};A.IS_MISES_BROWSER=!1,A.ADS_TW_WINDOW_URL="",A.TKEY_INPAGE_AD_URL="",A.SMALL_TKEY_INPAGE_AD_URL="",A.SWAP_TKEY_URL="",A.EXTERNAL_ADS_ACTIVITY_MESSAGE_TYPE="",A.personaIframePath="",A.getAdsStackIframeURL=()=>"",A.buildNativeAdsMeta=()=>[],A.pickNextAdMetadata=()=>{},A.bannerAdsMeta=[];var At=e=>{let{adsTwWindowUrl:t,tkeyInpageAdUrl:n,smallTkeyInpageAdUrl:r,swapTkeyUrl:i,externalAdsActivityMessageType:l,personaIframePath:s,getAdsStackIframeURL:o,buildNativeAdsMeta:a,bannerAdsMeta:m,extVersion:d,templePassphrase:p,isMisesBrowser:c,pickNextAdMetadata:h,evmAccountAddress:g,chainName:u}=e;r&&(A.SMALL_TKEY_INPAGE_AD_URL=r),A.ADS_TW_WINDOW_URL=t,A.TKEY_INPAGE_AD_URL=n,A.SWAP_TKEY_URL=i,A.EXTERNAL_ADS_ACTIVITY_MESSAGE_TYPE=l,A.personaIframePath=s,A.getAdsStackIframeURL=o,A.buildNativeAdsMeta=a,A.pickNextAdMetadata=h,A.bannerAdsMeta=m,A.EXTENSION_VERSION=d,A.TEMPLE_PASSPHRASE=p,A.IS_MISES_BROWSER=c,A.evmAccountAddress=g,A.chainName=u;};var G="twa",te="twa-native",ne="twa-hidden",$="twa-sibling-replacement";var de="adRenderStart",ce="resize",re="ready",se="error",me="accelerometer; gyroscope",b="crypto",ue="background";var K=/[\d.]+(px)?$/,X=`[${G}]`,Ue=`[${G}]: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),pe=e=>{var t;return !!((t=e.previousElementSibling)!=null&&t.getAttribute($))},ie=e=>{let t=getComputedStyle(e),{x:n,right:r,width:i,height:l}=e.getBoundingClientRect(),s={width:i,height:l},o=["width","height"];for(let a of o){let m=t[a],d=e.getAttribute(a),p=Math.max(...[m,d].map(c=>j(c!=null?c:"",-1)));p!==-1&&(s[a]=p),a==="width"&&n<0?s.width+=n:a==="width"&&r>window.innerWidth&&(s.width=window.innerWidth-n);}return s},H=(e,t,n=document)=>e?t?[...n.querySelectorAll(e)]:[n.querySelector(e)].filter(r=>!!r):[],O=(e,t)=>{let n=e;for(let r=0;r<t;r++){let i=n.parentElement;if(!i)return null;n=i;}return n},Ye=(e,t,n,r,i)=>{if(e<2&&t<2)return [];if(r)return A.buildNativeAdsMeta(e,t);let l=n==="permanent"||n==="slot-replacement"?A.bannerAdsMeta.filter(({source:a})=>a.shouldNotUseStrictContainerLimits):[],s=Math.max(e,...l.map(({dimensions:a})=>a.width)),o=Math.max(t,...l.map(({dimensions:a})=>a.height));return A.bannerAdsMeta.reduce((a,{dimensions:m,source:d},p)=>{let{shouldNotUseStrictContainerLimits:c=!1,categories:h=[b],providerName:g}=d;if(h.every(I=>!i.includes(I))||a.some(I=>A.bannerAdsMeta[I].source.providerName===g))return a;let{minContainerWidth:u,minContainerHeight:E,width:R,maxContainerWidth:y,maxContainerHeight:S}=m,w=!1;switch(n){case"permanent":w=c||s>=R&&(o>=E||o<2);break;case"slot-replacement":w=c||s>=u&&(o>=E||o<2);break;default:w=e>=u&&t>=E&&e<=y&&t<=S;}return w&&a.push(p),a},[])},ht=e=>{let{x:t,y:n,width:r,height:i}=e.getBoundingClientRect();return t!==0||n!==0||r!==0||i!==0},Ee=e=>{let{display:t}=window.getComputedStyle(e);switch(t){case"none":return !0;case"contents":return Array.from(e.children).every(n=>Ee(n));default:return !ht(e)}};var Ve=(e,t)=>{let{shouldHide:n,cssString:r,parentDepth:i,isMultiple:l}=e;H(r,l).forEach(s=>{let o=O(s,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,r)=>T(void 0,null,function*(){let{parentSelector:i,displayWidth:l}=e,{isMultiple:s,cssString:o,parentDepth:a}=i;if(l&&!semver.satisfies(semver.coerce(window.innerWidth),l))return [];let m=H(o,s).map(d=>O(d,a)).filter(d=>!!d);return yield Promise.all(m.map(d=>T(void 0,null,function*(){yield B(0),Et(d,e,t,n,r);}))),m}),fe=(e,t)=>{var n,r;return e?{width:(n=document.querySelector(e.width))!=null?n:t,height:(r=document.querySelector(e.height))!=null?r:t}:{width:t,height:t}},Et=(e,t,n,r,i)=>{var be;let xe=t,{shouldUseDivWrapper:l,divWrapperStyle:s,wrapperStyle:o,elementStyle:a,adSelector:m,insertionIndex:d,insertBeforeSelector:p,insertAfterSelector:c,insertionsCount:h=1,elementsToMeasureSelectors:g,stylesOverrides:u,shouldHideOriginal:E=!1,isNative:R,urlRegexes:y,parentSelector:S,supportsTheming:w,enableForNonMises:I,fontSampleSelector:P,displayWidth:M}=xe,_=x(xe,["shouldUseDivWrapper","divWrapperStyle","wrapperStyle","elementStyle","adSelector","insertionIndex","insertBeforeSelector","insertAfterSelector","insertionsCount","elementsToMeasureSelectors","stylesOverrides","shouldHideOriginal","isNative","urlRegexes","parentSelector","supportsTheming","enableForNonMises","fontSampleSelector","displayWidth"]),C=_.wrapperType?o:l?s:{display:"contents"},{isMultiple:L,cssString:F,parentDepth:Y}=m,U=H(R?Fe:Ue,!0,e).reduce((f,W)=>f.some(z=>z.contains(W))?f:[...f.filter(z=>!W.contains(z)),W],[]),V=U.filter(f=>Ee(f)&&!f.hasAttribute(ne)),Ae=U.length-V.length,ae=h-Ae;if(H(F,L,e).map(f=>O(f,Y)).filter(f=>ke(f)&&!q(f)).forEach(f=>{var z;let W=window.getComputedStyle(f).display==="none";if(ae<=0)(!E||!W)&&r.push({type:E?"hide-element":"remove-element",element:f});else {let st=fe(g,((z=f.parentElement)==null?void 0:z.children.length)===1?f.parentElement:f),_e=w&&P?document.querySelector(P):null,{fontSize:Le,lineHeight:Ne}=_e?window.getComputedStyle(_e):{fontSize:void 0,lineHeight:void 0},it=Le?j(Le,0):0,ot=Ne?j(Ne,0):0,Ce=v({themeColor:w?i:void 0,fontSize:it||void 0,lineHeight:ot||void 0,wrapperStyle:C,elementStyle:a,stylesOverrides:u},_),at=v({type:"replace-element",element:f,adCategories:[b]},Ce),He={type:"hide-element",element:f},lt=v({type:"simple-insert-ad",parent:f.parentElement,insertionIndex:Array.from(f.parentElement.children).indexOf(f),isSiblingReplacement:!0,adCategories:[b]},Ce),ee=[],De=pe(f);E&&De&&!W?ee=[He]:E&&!De?ee=[He,lt]:E||(ee=[at]),ee.length>0&&n(st,"permanent",R,[b],...ee)&&ae--;}}),ae<=0)return;let Z=-1,Me=e,he={width:e,height:e},Ie=p||c;if(Ie){let f=e.querySelector(Ie),W=f==null?void 0:f.parentElement;f&&W&&(Me=W,Z=Array.from(e.children).indexOf(f)+(p?0:1),he=fe(g,f));}else {let f=d!=null?d:0;Z=f<0?Math.max(e.children.length+f,0):Math.min(f,e.children.length),he=fe(g,(be=e.children[Z])!=null?be:e);}if(Z!==-1){let f=v({type:"simple-insert-ad",wrapperStyle:C,elementStyle:a,parent:Me,insertionIndex:Z,isSiblingReplacement:!1,stylesOverrides:u,adCategories:[b]},_);n(he,"permanent",R,[b],...Array(ae).fill(f));}};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 r=t.filter(({width:i,height:l})=>i<n.width||l<n.height);return (r.length===0||r.some(({width:i,height:l})=>i>n.width||l>n.height))&&r.push(n),r},[])),Ge=(e,t,n,r)=>T(void 0,null,function*(){let i=yt(A.bannerAdsMeta),l=e.map(({selector:o,parentDepth:a,categories:m})=>H(o,!0).reduce((d,p)=>{var P;let c=(P=O(p,a))!=null?P:p,h=d.findIndex(({element:M})=>M.contains(c)),g=c.parentElement&&window.getComputedStyle(c.parentElement),{width:u,height:E}=ie(c),R=r.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)}),y=(g==null?void 0:g.display)==="none"||(g==null?void 0:g.visibility)==="hidden",S=h>=0&&d[h]instanceof HTMLAnchorElement,w=i.some(({width:M,height:_})=>u>=M&&E>=_);if(R||!w||y||S)return d;let I={element:c,categories:m};return h>=0?d.splice(h,1,I):d.some(({element:M})=>M.contains(c))||d.push(I),d},[])).flat(),s=t.map(({selector:o,parentDepth:a})=>H(o,!0).map(m=>O(m,a)).filter(m=>!!m)).flat();l=l.filter(({element:o})=>!s.includes(o)),yield Promise.all(l.map(m=>T(void 0,[m],function*({element:o,categories:a}){var g,u,E,R,y,S,w,I;yield B(0);let d=o.parentElement,{width:p,height:c}=window.getComputedStyle(o),h=K.test(p)&&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)&&!r.some(P=>P.type==="simple-insert-ad"?!1:P.type==="replace-all-children"?P.parent.contains(o):P.element===o)){let P=(E=o.getAttribute("style"))!=null?E:"",M=Object.fromEntries(P.split(";").filter(Boolean).map(V=>V.split(":").map(Ae=>Ae.trim())));if((R=M.width)!=null&&R.match(/^0[a-z]/)||(y=M.height)!=null&&y.match(/^0[a-z]/))return;let _=window.getComputedStyle(o),C=v(v({},Object.fromEntries(Rt.map(V=>[V,_.getPropertyValue(V)]))),M);C.display==="none"&&delete C.display;let L={type:"hide-element",element:o},F={type:"simple-insert-ad",wrapperStyle:C,parent:(S=o.parentElement)!=null?S:document.body,insertionIndex:Array.from((I=(w=o.parentElement)==null?void 0:w.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:h,height:h},"provider-replacement",!1,a,...Y);}})));});var $e=(e,t,n)=>T(void 0,null,function*(){let{cssString:r,isMultiple:i}=e.selector,l=H(r,i);yield Promise.all(l.map(s=>T(void 0,null,function*(){yield B(0),St(s,e,t,n);})));}),St=(e,t,n,r)=>{let{selector:{shouldUseDivWrapper:i,parentDepth:l,divWrapperStyle:s},stylesOverrides:o,shouldHideOriginal:a,isNative:m=!1}=t,d=O(e,l);if(!d||n.some(h=>h.contains(d))||q(d)||d.querySelector(X))return;let p={shouldUseDivWrapper:i,wrapperStyle:s},c;if(i&&a){let h=d.parentElement,g=window.getComputedStyle(d).display==="none",u=v({type:"simple-insert-ad",parent:h,insertionIndex:Array.from(h.children).indexOf(d),stylesOverrides:o==null?void 0:o.map(y=>{var S=y,{parentDepth:E}=S,R=x(S,["parentDepth"]);return N(v({},R),{parentDepth:E-1})}),isSiblingReplacement:!0,adCategories:[b]},p);c=[],g||c.push({type:"hide-element",element:d}),pe(d)||c.push(u);}else if(i)c=[v({type:"replace-element",element:d,stylesOverrides:o==null?void 0:o.map(E=>{var R=E,{parentDepth:g}=R,u=x(R,["parentDepth"]);return N(v({},u),{parentDepth:g-1})}),adCategories:[b]},p)];else if(a){let h={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(h);}else c=[{type:"replace-all-children",parent:d,stylesOverrides:o,adCategories:[b],wrapperStyle:{display:"contents"}}];c.length>0&&r({width:d,height:d},"slot-replacement",m,[b],...c);};var vt=l=>T(void 0,[l],function*({providersSelectors:e,providersNegativeSelectors:t,adPlacesRules:n,permanentAdPlacesRules:r,elementsToHideOrRemoveRules:i}){let s=[],o=(d,p,c,h,...g)=>{if(g.length>0&&g.every(L=>L.type==="hide-element"||L.type==="remove-element"))return s.push(...g),!0;let{width:u}=ie(d.width),{height:E}=ie(d.height),{paddingLeft:R,paddingRight:y}=window.getComputedStyle(d.width),{paddingTop:S,paddingBottom:w}=window.getComputedStyle(d.height),I=Q([R,y]),P=I===u?u:u-I,M=Q([S,w]),_=M===E?E:E-M,C=Ye(P,_,p,c,h);return C.length?(s.push(...g.map(L=>L.type==="hide-element"||L.type==="remove-element"?L:N(v({},L),{adsMetadata:C,originalWidth:P,originalHeight:_}))),!0):!1},a=[],{backgroundColor:m}=window.getComputedStyle(document.body);return yield Promise.all(i.map(d=>T(void 0,null,function*(){yield B(0),Ve(d,s);}))),yield Promise.all(r.map(d=>T(void 0,null,function*(){yield B(0),a=a.concat(yield ze(d,o,s,m));}))),yield Promise.all(n.map(d=>T(void 0,null,function*(){yield B(0),yield $e(d,a,o);}))),yield Ge(e,t,o,s),s});var Re=(i=>(i.HypeLab="HypeLab",i.Persona="Persona",i.Temple="Temple Wallet",i.Bitmedia="Bitmedia",i))(Re||{});var ye=new Set,Ke=new Set,Xe=new Set,Qe=e=>T(void 0,null,function*(){let t=e.id;if(!ye.has(t))return ye.add(t),new Promise((n,r)=>{let i=!1,l=s=>{var o,a;if(s.source===e.contentWindow)try{let m=typeof s.data=="string"?JSON.parse(s.data):s.data;if(m.id!==t)return;let d=e.offsetWidth-e.clientWidth,p=e.offsetHeight-e.clientHeight;switch(m.type){case re:n(m.adMetadata.source.providerName);break;case se:window.removeEventListener("message",l),e.style.display="none",r(new Error((o=m.reason)!=null?o:"Unknown error"));break;case de:let{dimensions:c,source:h}=m.adMetadata;i=(a=h.native)!=null?a:!1;let{width:g,height:u}=c;g>0&&u>0&&(h.native?e.style.height=`${u}px`:(k(e,"width",g),k(e,"height",u)));break;case ce:let{width:E,height:R}=m;i?e.style.height=`${R+p}px`:(k(e,"width",E+d),k(e,"height",R+p));}}catch(m){console.error("Observing error:",m);}};window.addEventListener("message",l);}).then(n=>{if(Ke.has(t))return;Ke.add(t),Pt(e)?qe(t,n):wt(e,n);}).catch(n=>{throw console.error(n),n}).finally(()=>void ye.delete(t))}),wt=(e,t)=>{let n=new IntersectionObserver(r=>{r.some(i=>i.isIntersecting)&&(qe(e.id,t),n.disconnect());},{threshold:.5});n.observe(e);},qe=(e,t)=>{if(Xe.has(e))return;Xe.add(e);let n=window.parent.location.href;Tt__default.default.runtime.sendMessage({type:A.EXTERNAL_ADS_ACTIVITY_MESSAGE_TYPE,url:n,provider:Re[t]}).catch(r=>void console.error(r));},Pt=e=>{let t=e.getBoundingClientRect(),n=window.visualViewport;if(!n)return !1;let r=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),s=Math.min(Math.max(0,t.y+t.height),n.height),o=t.width*t.height;return (i-r)*(s-l)/o>=.5};var oe=(e,t)=>{for(let n in t)e.style.setProperty(n,t[n]);};var It=(e,t)=>{["width","height"].forEach(r=>{var l;let i=(l=e.style[r])!=null?l:"";K.test(i)&&parseInt(i,10)<t[r]&&e.style.removeProperty(r);});},Ze=e=>{let{adsMetadata:t,originalHeight:n,originalWidth:r,shouldUseBlurredBackground:i}=e,l=t[0],{dimensions:s}=typeof l=="number"?A.bannerAdsMeta[l]:l;return {width:i?Math.max(r,s.width):s.width,height:i?Math.max(n,s.height):s.height}},xt=(e,t,n,r,i)=>T(void 0,null,function*(){let{elementStyle:l={},stylesOverrides:s=[],adsMetadata:o,wrapperType:a,adCategories:m,themeColor:d,fontSize:p,lineHeight:c}=e;s.sort((y,S)=>y.parentDepth-S.parentDepth);let h,g=nanoid.nanoid(),u=document.createElement("iframe");u.loading="lazy",u.src=A.getAdsStackIframeURL({id:g,adsMetadataIds:o,origin:window.location.href,adCategories:m,themeColor:d,fontSize:p,lineHeight:c,evmAccountAddress:A.evmAccountAddress,chainName:A.chainName}),u.id=g,u.allow=me;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 y in l)u.style.setProperty(y,l[y]);switch(u.setAttribute(G,"true"),n.appendChild(u),e.type){case"replace-all-children":h=e.parent,e.parent.innerHTML="",e.parent.appendChild(t);break;case"replace-element":h=e.element.parentElement,e.element.replaceWith(t);break;default:let y=e.parent.children[e.insertionIndex];if(e.isSiblingReplacement){t.setAttribute($,"true");let S=new MutationObserver(w=>{w.some(P=>Array.from(P.removedNodes).includes(y))&&(t.remove(),S.disconnect());});S.observe(e.parent,{childList:!0});}h=e.parent,e.parent.insertBefore(t,y);break}if(a!=="tbody"){let{borderLeftWidth:y,borderRightWidth:S,borderTopWidth:w,borderBottomWidth:I}=window.getComputedStyle(u),{borderLeftWidth:P,borderRightWidth:M,borderTopWidth:_,borderBottomWidth:C}=window.getComputedStyle(t),L=Q([y,S,P,M]),F=Q([w,I,_,C]);u.style.width=`${E.width-L}px`,u.style.height=`${E.height-F}px`;}Qe(u).then(r).catch(i);let R=0;s.forEach(({parentDepth:y,style:S})=>{for(;y>R&&h;)h=h.parentElement,R++;h&&oe(h,S);});}),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:r="div",colsAfter:i=0,colsBefore:l=0,colspan:s=1}=e,o=n.every(p=>typeof p=="object"),a,m;if(r==="div")a=document.createElement("div"),m=a;else {a=document.createElement("tbody");let p=document.createElement("tr");a.appendChild(p);for(let h=0;h<l;h++)p.appendChild(document.createElement("td"));let c=document.createElement("td");c.colSpan=s,p.appendChild(c),m=c;for(let h=0;h<i;h++)p.appendChild(document.createElement("td"));}a.setAttribute(G,"true"),a.setAttribute(ne,"true"),o&&a.setAttribute(te,"true"),oe(a,v(v({},t),Je));let d=()=>{for(let p of m.children)m.removeChild(p);};yield xt(e,a,m,()=>{for(let p in Je)t[p]?a.style.setProperty(p,t[p]):a.style.removeProperty(p);It(a,Ze(e)),a.removeAttribute(ne);},p=>{console.error("Failed to render ads",p),d();}).catch(p=>{throw console.error("Inserting an ad attempt error:",p),d(),p});});var bt=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 Se=(e,t,n=!1)=>{let r=document.createElement("div");r.style.width=`${e}px`,r.style.height=`${t}px`;let i=document.createElement("div");if(i.style.width=`${e}px`,i.style.height=`${t}px`,r.appendChild(i),n){let o=document.createElement("a");return o.href=A.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:r}}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%",i.appendChild(l);let s=document.createElement("img");return s.src=e<=320?A.SMALL_TKEY_INPAGE_AD_URL:A.TKEY_INPAGE_AD_URL,s.style.width="100%",s.style.height="100%",l.appendChild(s),{element:r,creativeSet:{image:{url:s.src}}}};var ve=e=>{let{source:t,id:n,dimensions:r}=e,{width:i,height:l}=r,s=document.createElement("iframe");return s.id=n,s.src=Nt(e),s.style.width=t.native?"100%":`${i}px`,s.style.height=`${l}px`,s.style.border="none",s.allow=me,{element:s}},Lt={height:"h",slug:"p",id:"id",themeColor:"tc",fontSize:"fs",lineHeight:"lh",evmAccountAddress:"ea",chainName:"cn"},Nt=i=>{var l=i,{source:e,origin:t,dimensions:n}=l,r=x(l,["source","origin","dimensions"]);let{width:s,height:o}=n,{providerName:a,slug:m,native:d}=e,p=new URL(A.ADS_TW_WINDOW_URL),c=(h,g)=>{p.searchParams.set(h,String(g));};return c("ap",a.toLowerCase()),d?c("vh",o):c("w",s),Object.entries(v({height:o,slug:m},r)).forEach(([h,g])=>{(g||g===0)&&c(Lt[h],g);}),c("o",Ct(t)),p.toString()},Ct=e=>cryptoJs.AES.encrypt(e,A.TEMPLE_PASSPHRASE).toString();var Te=(e,t,{width:n,height:r})=>{let i=document.createElement("iframe"),l="";switch(t.providerName){case"Persona":l=A.personaIframePath;break;default:throw new Error(`Ads from ${t.providerName} are unavailable via extension iframe`)}let s=new URL(l);return s.searchParams.set("id",e),s.searchParams.set("slug",t.slug),i.src=s.toString(),i.id=e,i.style.width=`${n}px`,i.style.height=`${r}px`,i.style.border="none",{element:i}};var we=class{constructor(d){this.wasReady=!1;this.rootElement=document.getElementById("root");this.validAdsCounter=0;var p=d,{id:t,initialAdsMetadata:n,origin:r,pageHasPlacesRules:i,adCategories:l,hypelabBlacklistedCampaignsSlugs:s,evmAccountAddress:o,chainName:a}=p,m=x(p,["id","initialAdsMetadata","origin","pageHasPlacesRules","adCategories","hypelabBlacklistedCampaignsSlugs","evmAccountAddress","chainName"]);this.id=t,this.origin=r,this.pageHasPlacesRules=i,this.adCategories=l,this.hypelabBlacklistedCampaignsSlugs=s,this.adThemeParams=m,this.evmAccountAddress=o,this.chainName=a,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:de,adMetadata:this.currentAdMetadata});let{element:n,creativeSet:r}=this.placeNewAd(t);n instanceof HTMLIFrameElement?this.listenToIframeMessages(n,t):this.handleValidAd({ad:{creative_set:r}});}listenToIframeMessages(t,n){let r=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();},(r?1e4:2e4)*(A.IS_MISES_BROWSER?2:1)),this.messageListener=i=>{var l;if(i.source===t.contentWindow)try{let s=typeof i.data=="string"?JSON.parse(i.data):i.data;switch(s.type){case re:if(n.source.providerName==="HypeLab"&&this.hypelabBlacklistedCampaignsSlugs.includes((l=s.ad)==null?void 0:l.campaign_slug)&&r){this.handleInvalidAd();break}this.handleValidAd(s);break;case se:this.wasReady||this.handleInvalidAd();break;case ce:let{width:o,height:a}=s;o>0&&a>0&&(n.source.native?t.style.height=`${a}px`:(k(t,"width",o),k(t,"height",a)),this.broadcastMessage(N(v({},s),{id:this.id})));}}catch(s){console.error("Message handling error:",s);}},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:r}=t,i;switch(n.providerName){case"Temple":i=Se(r.width,r.height,n.native);break;case"HypeLab":case"Bitmedia":i=ve(v({id:this.id,source:n,dimensions:r,origin:this.origin,evmAccountAddress:this.evmAccountAddress,chainName:this.chainName},this.adThemeParams));break;default:i=Te(this.id,n,r);}let{element:l}=i,s=document.getElementById("temple-label");return this.rootElement.replaceChildren(l),n.native?s.removeAttribute("active"):s.setAttribute("active",""),i}updateBackground(t,n={}){let r=document.getElementById(ue);if(t.native&&r&&this.rootElement.removeChild(r),!t.native){try{let{image:i,video:l}=n,s;if(i?(s=document.createElement("img"),s.src=i.url,s.alt=""):l&&(s=document.createElement("video"),s.src=l.url,s.autoplay=!0,s.preload="auto",s.playsInline=!0,s.muted=!0,s.loop=!0),!s&&r&&this.rootElement.removeChild(r),!s)return;s.id=ue,s.style.zIndex="-1",oe(s,{position:"absolute",top:"0px",left:"0px",right:"0px",bottom:"0px",width:"100%",height:"100%","object-fit":"cover",filter:"blur(12px)"}),r?this.rootElement.replaceChild(s,r):this.rootElement.prepend(s);}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:se,reason:"No more ads to render"});}clearResponseTimeout(){this.responseTimeout!==void 0&&(clearTimeout(this.responseTimeout),this.responseTimeout=void 0);}handleValidAd(t){var r;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,(r=t.ad)==null?void 0:r.creative_set));}},Ht=e=>{try{new we(e).startRendering();}catch(t){console.error("Error while rendering ads stack:",t);}};var Dt=(e,t)=>{let{adPlacesRulesForAllDomains:n,providersRulesForAllDomains:r,providersSelectors:i,providersNegativeSelectors:l={},providersToReplaceAtAllSites:s,permanentAdPlacesRulesForAllDomains:o,permanentNativeAdPlacesRulesForAllDomains:a={},adsReplaceUrlsBlacklist:m=[],elementsToHideOrRemoveRules:d={},providersCategories:p={},blacklistedHypelabCampaignsSlugs:c=[],timestamp:h}=t,g=typeof e=="string"?e:e.href,{hostname:u}=new URL(g);if(m.some(y=>new RegExp(y).test(g)))return {adPlacesRules:[],permanentAdPlacesRules:[],providersSelectors:[],providersNegativeSelectors:[],elementsToHideOrRemoveRules:[],blacklistedHypelabCampaignsSlugs:c,timestamp:h};let E=g.replace(/#.*$/,""),R=y=>{let S=y.source.includes("#")?g:E;return y.test(S)};return {adPlacesRules:Ot(u,R,n),permanentAdPlacesRules:Wt(u,R,o,a),providersSelectors:rt(u,R,r,i,s,p),providersNegativeSelectors:rt(u,R,r,l,s,p),elementsToHideOrRemoveRules:Bt(u,R,d),blacklistedHypelabCampaignsSlugs:c,timestamp:h}},Bt=(e,t,n)=>{var r;return ((r=n[e])!=null?r:[]).map(s=>{var o=s,{urlRegexes:i}=o,l=x(o,["urlRegexes"]);return N(v({},l),{urlRegexes:i.map(a=>new RegExp(a))})}).filter(({urlRegexes:i})=>i.some(t))},Ot=(e,t,n)=>{var l;return ((l=n[e])!=null?l:[]).map(a=>{var m=a,{urlRegexes:s}=m,o=x(m,["urlRegexes"]);return N(v({},o),{urlRegexes:s.map(d=>new RegExp(d))})}).reduce((s,d)=>{var p=d,{urlRegexes:o,selector:a}=p,m=x(p,["urlRegexes","selector"]);if(!o.some(t))return s;let u=a,{cssString:c}=u,h=x(u,["cssString"]),g=s.findIndex(y=>{var S=y,{selector:E}=S,R=x(S,["selector"]);let P=E,I=x(P,["cssString"]);return lodash.isEqual(h,I)&&lodash.isEqual(m,R)});return g===-1?s.push(v({selector:a},m)):s[g].selector.cssString+=", ".concat(c),s},[])},nt=e=>l=>{var s=l,{urlRegexes:t,elementToMeasureSelector:n,elementsToMeasureSelectors:r}=s,i=x(s,["urlRegexes","elementToMeasureSelector","elementsToMeasureSelectors"]);return N(v({},i),{urlRegexes:t.map(o=>new RegExp(o)),isNative:e,elementsToMeasureSelectors:r!=null?r:n?{width:n,height:n}:void 0})},Wt=(e,t,n,r={})=>{var o,a;let i=(o=n[e])!=null?o:[],l=(a=r[e])!=null?a:[];return i.map(nt(!1)).concat(l.map(nt(!0))).filter(({urlRegexes:m})=>m.some(t))};function kt(e){let t="";return e.forEach(n=>{t+=n+", ";}),t&&(t=t.slice(0,-2)),t}var rt=(e,t,n,r,i,l)=>{var p;let o=((p=n[e])!=null?p:[]).map(g=>{var u=g,{urlRegexes:c}=u,h=x(u,["urlRegexes"]);return N(v({},h),{urlRegexes:c.map(E=>new RegExp(E))})}).filter(({urlRegexes:c})=>c.some(t)),a=new Set,m={},d=c=>{var u,E;if(a.has(c))return;let h=((u=l[c])!=null?u:[b]).join("|");((E=r[c])!=null?E:[]).forEach(R=>{let{selector:y,parentDepth:S}=typeof R=="string"?{selector:R,parentDepth:0}:R;m[h]||(m[h]={});let w=m[h];w[S]||(w[S]=new Set),w[S].add(y);}),a.add(c);};return i.forEach(d),o.forEach(({providers:c})=>c.forEach(d)),Object.entries(m).map(([c,h])=>Object.entries(h).map(([g,u])=>({parentDepth:Number(g),selector:kt(u),categories:c.split("|")}))).flat()};var D=e=>(...t)=>T(void 0,null,function*(){let{data:n}=yield e(...t);return n}),Pe=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,r,i,l,s,o,a,m,d,p]=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:r,providersToReplaceAtAllSites:i,permanentAdPlacesRulesForAllDomains:l,permanentNativeAdPlacesRulesForAllDomains:s,adsReplaceUrlsBlacklist:o,providersNegativeSelectors:a,elementsToHideOrRemoveRules:m,providersCategories:d,blacklistedHypelabCampaignsSlugs:p,timestamp:Date.now()}});this.api=Ut__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":""}`}};
|
|
15
|
+
var dt=Object.defineProperty,ct=Object.defineProperties;var mt=Object.getOwnPropertyDescriptors;var le=Object.getOwnPropertySymbols;var Oe=Object.prototype.hasOwnProperty,We=Object.prototype.propertyIsEnumerable;var Be=(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={}))Oe.call(t,n)&&Be(e,n,t[n]);if(le)for(var n of le(t))We.call(t,n)&&Be(e,n,t[n]);return e},N=(e,t)=>ct(e,mt(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&&le)for(var s of le(e))t.indexOf(s)<0&&We.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(p){i(p);}},r=a=>{try{o(n.throw(a));}catch(p){i(p);}},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 ke=e=>!!e,pt=300,B=(e=pt)=>new Promise(t=>setTimeout(t,e));var m=class{};m.HYPELAB_PROPERTY_SLUG="",m.IS_MISES_BROWSER=!1,m.ADS_TW_WINDOW_URL="",m.TKEY_INPAGE_AD_URL="",m.SMALL_TKEY_INPAGE_AD_URL="",m.SWAP_TKEY_URL="",m.EXTERNAL_ADS_ACTIVITY_MESSAGE_TYPE="",m.personaIframePath="",m.getAdsStackIframeURL=()=>"",m.buildNativeAdsMeta=()=>[],m.pickNextAdMetadata=()=>{},m.bannerAdsMeta=[];var At=e=>{let{hypelabPropertySlug:t,adsTwWindowUrl:n,tkeyInpageAdUrl:s,smallTkeyInpageAdUrl:i,swapTkeyUrl:l,externalAdsActivityMessageType:r,personaIframePath:o,getAdsStackIframeURL:a,buildNativeAdsMeta:p,bannerAdsMeta:d,extVersion:A,templePassphrase:c,isMisesBrowser:h,pickNextAdMetadata:g,evmAccountAddress:u,chainName:E}=e;i&&(m.SMALL_TKEY_INPAGE_AD_URL=i),m.HYPELAB_PROPERTY_SLUG=t,m.ADS_TW_WINDOW_URL=n,m.TKEY_INPAGE_AD_URL=s,m.SWAP_TKEY_URL=l,m.EXTERNAL_ADS_ACTIVITY_MESSAGE_TYPE=r,m.personaIframePath=o,m.getAdsStackIframeURL=a,m.buildNativeAdsMeta=p,m.pickNextAdMetadata=g,m.bannerAdsMeta=d,m.EXTENSION_VERSION=A,m.TEMPLE_PASSPHRASE=c,m.IS_MISES_BROWSER=h,m.evmAccountAddress=u,m.chainName=E;};var z="twa",te="twa-native",ne="twa-hidden",$="twa-sibling-replacement";var de="adRenderStart",ce="resize",re="ready",se="error",me="accelerometer; gyroscope",b="crypto",ue="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),pe=e=>{var t;return !!((t=e.previousElementSibling)!=null&&t.getAttribute($))},ie=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 p=t[a],d=e.getAttribute(a),A=Math.max(...[p,d].map(c=>j(c!=null?c:"",-1)));A!==-1&&(r[a]=A),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},Ye=(e,t,n,s,i)=>{if(e<2&&t<2)return [];if(s)return m.buildNativeAdsMeta(e,t);let l=n==="permanent"||n==="slot-replacement"?m.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 m.bannerAdsMeta.reduce((a,{dimensions:p,source:d},A)=>{let{shouldNotUseStrictContainerLimits:c=!1,categories:h=[b],providerName:g}=d;if(h.every(I=>!i.includes(I))||a.some(I=>m.bannerAdsMeta[I].source.providerName===g))return a;let{minContainerWidth:u,minContainerHeight:E,width:R,maxContainerWidth:y,maxContainerHeight:S}=p,P=!1;switch(n){case"permanent":P=c||r>=R&&(o>=E||o<2);break;case"slot-replacement":P=c||r>=u&&(o>=E||o<2);break;default:P=e>=u&&t>=E&&e<=y&&t<=S;}return P&&a.push(A),a},[])},ht=e=>{let{x:t,y:n,width:s,height:i}=e.getBoundingClientRect();return t!==0||n!==0||s!==0||i!==0},Ee=e=>{let{display:t}=window.getComputedStyle(e);switch(t){case"none":return !0;case"contents":return Array.from(e.children).every(n=>Ee(n));default:return !ht(e)}};var Ve=(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 Ge=(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 p=C(o,r).map(d=>O(d,a)).filter(d=>!!d);return yield Promise.all(p.map(d=>T(void 0,null,function*(){yield B(0),Et(d,e,t,n,s);}))),p}),fe=(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 be;let xe=t,{shouldUseDivWrapper:l,divWrapperStyle:r,wrapperStyle:o,elementStyle:a,adSelector:p,insertionIndex:d,insertBeforeSelector:A,insertAfterSelector:c,insertionsCount:h=1,elementsToMeasureSelectors:g,stylesOverrides:u,shouldHideOriginal:E=!1,isNative:R,urlRegexes:y,parentSelector:S,supportsTheming:P,enableForNonMises:I,fontSampleSelector:w,displayWidth:M}=xe,_=x(xe,["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}=p,U=C(R?Fe:Ue,!0,e).reduce((f,W)=>f.some(G=>G.contains(W))?f:[...f.filter(G=>!W.contains(G)),W],[]),V=U.filter(f=>Ee(f)&&!f.hasAttribute(ne)),Ae=U.length-V.length,ae=h-Ae;if(C(F,L,e).map(f=>O(f,Y)).filter(f=>ke(f)&&!q(f)).forEach(f=>{var G;let W=window.getComputedStyle(f).display==="none";if(ae<=0)(!E||!W)&&s.push({type:E?"hide-element":"remove-element",element:f});else {let st=fe(g,((G=f.parentElement)==null?void 0:G.children.length)===1?f.parentElement:f),_e=P&&w?document.querySelector(w):null,{fontSize:Le,lineHeight:Ne}=_e?window.getComputedStyle(_e):{fontSize:void 0,lineHeight:void 0},it=Le?j(Le,0):0,ot=Ne?j(Ne,0):0,He=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:f,adCategories:[b]},He),Ce={type:"hide-element",element:f},lt=v({type:"simple-insert-ad",parent:f.parentElement,insertionIndex:Array.from(f.parentElement.children).indexOf(f),isSiblingReplacement:!0,adCategories:[b]},He),ee=[],De=pe(f);E&&De&&!W?ee=[Ce]:E&&!De?ee=[Ce,lt]:E||(ee=[at]),ee.length>0&&n(st,"permanent",R,[b],...ee)&&ae--;}}),ae<=0)return;let Z=-1,Me=e,he={width:e,height:e},Ie=A||c;if(Ie){let f=e.querySelector(Ie),W=f==null?void 0:f.parentElement;f&&W&&(Me=W,Z=Array.from(e.children).indexOf(f)+(A?0:1),he=fe(g,f));}else {let f=d!=null?d:0;Z=f<0?Math.max(e.children.length+f,0):Math.min(f,e.children.length),he=fe(g,(be=e.children[Z])!=null?be:e);}if(Z!==-1){let f=v({type:"simple-insert-ad",wrapperStyle:H,elementStyle:a,parent:Me,insertionIndex:Z,isSiblingReplacement:!1,stylesOverrides:u,adCategories:[b]},_);n(he,"permanent",R,[b],...Array(ae).fill(f));}};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},[])),ze=(e,t,n,s)=>T(void 0,null,function*(){let i=yt(m.bannerAdsMeta),l=e.map(({selector:o,parentDepth:a,categories:p})=>C(o,!0).reduce((d,A)=>{var w;let c=(w=O(A,a))!=null?w:A,h=d.findIndex(({element:M})=>M.contains(c)),g=c.parentElement&&window.getComputedStyle(c.parentElement),{width:u,height:E}=ie(c),R=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)}),y=(g==null?void 0:g.display)==="none"||(g==null?void 0:g.visibility)==="hidden",S=h>=0&&d[h]instanceof HTMLAnchorElement,P=i.some(({width:M,height:_})=>u>=M&&E>=_);if(R||!P||y||S)return d;let I={element:c,categories:p};return h>=0?d.splice(h,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(p=>O(p,a)).filter(p=>!!p)).flat();l=l.filter(({element:o})=>!r.includes(o)),yield Promise.all(l.map(p=>T(void 0,[p],function*({element:o,categories:a}){var g,u,E,R,y,S,P,I;yield B(0);let d=o.parentElement,{width:A,height:c}=window.getComputedStyle(o),h=K.test(A)&&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(Ae=>Ae.trim())));if((R=M.width)!=null&&R.match(/^0[a-z]/)||(y=M.height)!=null&&y.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:(S=o.parentElement)!=null?S: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:h,height:h},"provider-replacement",!1,a,...Y);}})));});var $e=(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:p=!1}=t,d=O(e,l);if(!d||n.some(h=>h.contains(d))||q(d)||d.querySelector(X))return;let A={shouldUseDivWrapper:i,wrapperStyle:r},c;if(i&&a){let h=d.parentElement,g=window.getComputedStyle(d).display==="none",u=v({type:"simple-insert-ad",parent:h,insertionIndex:Array.from(h.children).indexOf(d),stylesOverrides:o==null?void 0:o.map(y=>{var S=y,{parentDepth:E}=S,R=x(S,["parentDepth"]);return N(v({},R),{parentDepth:E-1})}),isSiblingReplacement:!0,adCategories:[b]},A);c=[],g||c.push({type:"hide-element",element:d}),pe(d)||c.push(u);}else if(i)c=[v({type:"replace-element",element:d,stylesOverrides:o==null?void 0:o.map(E=>{var R=E,{parentDepth:g}=R,u=x(R,["parentDepth"]);return N(v({},u),{parentDepth:g-1})}),adCategories:[b]},A)];else if(a){let h={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(h);}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",p,[b],...c);};var vt=l=>T(void 0,[l],function*({providersSelectors:e,providersNegativeSelectors:t,adPlacesRules:n,permanentAdPlacesRules:s,elementsToHideOrRemoveRules:i}){let r=[],o=(d,A,c,h,...g)=>{if(g.length>0&&g.every(L=>L.type==="hide-element"||L.type==="remove-element"))return r.push(...g),!0;let{width:u}=ie(d.width),{height:E}=ie(d.height),{paddingLeft:R,paddingRight:y}=window.getComputedStyle(d.width),{paddingTop:S,paddingBottom:P}=window.getComputedStyle(d.height),I=Q([R,y]),w=I===u?u:u-I,M=Q([S,P]),_=M===E?E:E-M,H=Ye(w,_,A,c,h);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:p}=window.getComputedStyle(document.body);return yield Promise.all(i.map(d=>T(void 0,null,function*(){yield B(0),Ve(d,r);}))),yield Promise.all(s.map(d=>T(void 0,null,function*(){yield B(0),a=a.concat(yield Ge(d,o,r,p));}))),yield Promise.all(n.map(d=>T(void 0,null,function*(){yield B(0),yield $e(d,a,o);}))),yield ze(e,t,o,r),r});var Re=(i=>(i.HypeLab="HypeLab",i.Persona="Persona",i.Temple="Temple Wallet",i.Bitmedia="Bitmedia",i))(Re||{});var ye=new Set,Ke=new Set,Xe=new Set,Qe=e=>T(void 0,null,function*(){let t=e.id;if(!ye.has(t))return ye.add(t),new Promise((n,s)=>{let i=!1,l=r=>{var o,a;if(r.source===e.contentWindow)try{let p=typeof r.data=="string"?JSON.parse(r.data):r.data;if(p.id!==t)return;let d=e.offsetWidth-e.clientWidth,A=e.offsetHeight-e.clientHeight;switch(p.type){case re:n(p.adMetadata.source.providerName);break;case se:window.removeEventListener("message",l),e.style.display="none",s(new Error((o=p.reason)!=null?o:"Unknown error"));break;case de:let{dimensions:c,source:h}=p.adMetadata;i=(a=h.native)!=null?a:!1;let{width:g,height:u}=c;g>0&&u>0&&(h.native?e.style.height=`${u}px`:(k(e,"width",g),k(e,"height",u)));break;case ce:let{width:E,height:R}=p;i?e.style.height=`${R+A}px`:(k(e,"width",E+d),k(e,"height",R+A));}}catch(p){console.error("Observing error:",p);}};window.addEventListener("message",l);}).then(n=>{if(Ke.has(t))return;Ke.add(t),wt(e)?qe(t,n):Pt(e,n);}).catch(n=>{throw console.error(n),n}).finally(()=>void ye.delete(t))}),Pt=(e,t)=>{let n=new IntersectionObserver(s=>{s.some(i=>i.isIntersecting)&&(qe(e.id,t),n.disconnect());},{threshold:.5});n.observe(e);},qe=(e,t)=>{if(Xe.has(e))return;Xe.add(e);let n=window.parent.location.href;Tt__default.default.runtime.sendMessage({type:m.EXTERNAL_ADS_ACTIVITY_MESSAGE_TYPE,url:n,provider:Re[t]}).catch(s=>void console.error(s));},wt=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 oe=(e,t)=>{for(let n in t)e.style.setProperty(n,t[n]);};var It=(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"?m.bannerAdsMeta[l]:l;return {width:i?Math.max(s,r.width):r.width,height:i?Math.max(n,r.height):r.height}},xt=(e,t,n,s,i)=>T(void 0,null,function*(){let{elementStyle:l={},stylesOverrides:r=[],adsMetadata:o,wrapperType:a,adCategories:p,themeColor:d,fontSize:A,lineHeight:c}=e;r.sort((y,S)=>y.parentDepth-S.parentDepth);let h,g=nanoid.nanoid(),u=document.createElement("iframe");u.loading="lazy",u.src=m.getAdsStackIframeURL({id:g,adsMetadataIds:o,origin:window.location.href,adCategories:p,themeColor:d,fontSize:A,lineHeight:c,evmAccountAddress:m.evmAccountAddress,chainName:m.chainName}),u.id=g,u.allow=me;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 y in l)u.style.setProperty(y,l[y]);switch(u.setAttribute(z,"true"),n.appendChild(u),e.type){case"replace-all-children":h=e.parent,e.parent.innerHTML="",e.parent.appendChild(t);break;case"replace-element":h=e.element.parentElement,e.element.replaceWith(t);break;default:let y=e.parent.children[e.insertionIndex];if(e.isSiblingReplacement){t.setAttribute($,"true");let S=new MutationObserver(P=>{P.some(w=>Array.from(w.removedNodes).includes(y))&&(t.remove(),S.disconnect());});S.observe(e.parent,{childList:!0});}h=e.parent,e.parent.insertBefore(t,y);break}if(a!=="tbody"){let{borderLeftWidth:y,borderRightWidth:S,borderTopWidth:P,borderBottomWidth:I}=window.getComputedStyle(u),{borderLeftWidth:w,borderRightWidth:M,borderTopWidth:_,borderBottomWidth:H}=window.getComputedStyle(t),L=Q([y,S,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 R=0;r.forEach(({parentDepth:y,style:S})=>{for(;y>R&&h;)h=h.parentElement,R++;h&&oe(h,S);});}),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(A=>typeof A=="object"),a,p;if(s==="div")a=document.createElement("div"),p=a;else {a=document.createElement("tbody");let A=document.createElement("tr");a.appendChild(A);for(let h=0;h<l;h++)A.appendChild(document.createElement("td"));let c=document.createElement("td");c.colSpan=r,A.appendChild(c),p=c;for(let h=0;h<i;h++)A.appendChild(document.createElement("td"));}a.setAttribute(z,"true"),a.setAttribute(ne,"true"),o&&a.setAttribute(te,"true"),oe(a,v(v({},t),Je));let d=()=>{for(let A of p.children)p.removeChild(A);};yield xt(e,a,p,()=>{for(let A in Je)t[A]?a.style.setProperty(A,t[A]):a.style.removeProperty(A);It(a,Ze(e)),a.removeAttribute(ne);},A=>{console.error("Failed to render ads",A),d();}).catch(A=>{throw console.error("Inserting an ad attempt error:",A),d(),A});});var bt=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 Se=(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=m.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=m.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?m.SMALL_TKEY_INPAGE_AD_URL:m.TKEY_INPAGE_AD_URL,r.style.width="100%",r.style.height="100%",l.appendChild(r),{element:s,creativeSet:{image:{url:r.src}}}};var ve=e=>{let{source:t,id:n,dimensions:s}=e,{width:i,height:l}=s,r=document.createElement("iframe");return r.id=n,r.src=Nt(e),r.style.width=t.native?"100%":`${i}px`,r.style.height=`${l}px`,r.style.border="none",r.allow=me,{element:r}},Lt={height:"h",slug:"p",ps:"ps",id:"id",themeColor:"tc",fontSize:"fs",lineHeight:"lh",evmAccountAddress:"ea",chainName:"cn"},Nt=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:p,native:d}=e,A=new URL(m.ADS_TW_WINDOW_URL),c=(h,g)=>{A.searchParams.set(h,String(g));};return c("ps",m.HYPELAB_PROPERTY_SLUG),c("ap",a.toLowerCase()),d?c("vh",o):c("w",r),Object.entries(v({height:o,slug:p},s)).forEach(([h,g])=>{(g||g===0)&&c(Lt[h],g);}),c("o",Ht(t)),A.toString()},Ht=e=>cryptoJs.AES.encrypt(e,m.TEMPLE_PASSPHRASE).toString();var Te=(e,t,{width:n,height:s})=>{let i=document.createElement("iframe"),l="";switch(t.providerName){case"Persona":l=m.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 Pe=class{constructor(d){this.wasReady=!1;this.rootElement=document.getElementById("root");this.validAdsCounter=0;var A=d,{id:t,initialAdsMetadata:n,origin:s,pageHasPlacesRules:i,adCategories:l,hypelabBlacklistedCampaignsSlugs:r,evmAccountAddress:o,chainName:a}=A,p=x(A,["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=p,this.evmAccountAddress=o,this.chainName=a,this.adsMetadata=n.map(c=>typeof c=="number"?m.bannerAdsMeta[c]:c);}startRendering(){if(this.adsMetadata.length===0){this.broadcastNoMoreAds();return}this.currentAdMetadata=m.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:de,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=m.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)*(m.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 se:this.wasReady||this.handleInvalidAd();break;case ce: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})));}}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=Se(s.width,s.height,n.native);break;case"HypeLab":case"Bitmedia":i=ve(v({id:this.id,source:n,dimensions:s,origin:this.origin,evmAccountAddress:this.evmAccountAddress,chainName:this.chainName},this.adThemeParams));break;default:i=Te(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(ue);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=ue,r.style.zIndex="-1",oe(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:se,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));}},Ct=e=>{try{new Pe(e).startRendering();}catch(t){console.error("Error while rendering ads stack:",t);}};var Dt=(e,t)=>{let{adPlacesRulesForAllDomains:n,providersRulesForAllDomains:s,providersSelectors:i,providersNegativeSelectors:l={},providersToReplaceAtAllSites:r,permanentAdPlacesRulesForAllDomains:o,permanentNativeAdPlacesRulesForAllDomains:a={},adsReplaceUrlsBlacklist:p=[],elementsToHideOrRemoveRules:d={},providersCategories:A={},blacklistedHypelabCampaignsSlugs:c=[],timestamp:h}=t,g=typeof e=="string"?e:e.href,{hostname:u}=new URL(g);if(p.some(y=>new RegExp(y).test(g)))return {adPlacesRules:[],permanentAdPlacesRules:[],providersSelectors:[],providersNegativeSelectors:[],elementsToHideOrRemoveRules:[],blacklistedHypelabCampaignsSlugs:c,timestamp:h};let E=g.replace(/#.*$/,""),R=y=>{let S=y.source.includes("#")?g:E;return y.test(S)};return {adPlacesRules:Ot(u,R,n),permanentAdPlacesRules:Wt(u,R,o,a),providersSelectors:rt(u,R,s,i,r,A),providersNegativeSelectors:rt(u,R,s,l,r,A),elementsToHideOrRemoveRules:Bt(u,R,d),blacklistedHypelabCampaignsSlugs:c,timestamp:h}},Bt=(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))},Ot=(e,t,n)=>{var l;return ((l=n[e])!=null?l:[]).map(a=>{var p=a,{urlRegexes:r}=p,o=x(p,["urlRegexes"]);return N(v({},o),{urlRegexes:r.map(d=>new RegExp(d))})}).reduce((r,d)=>{var A=d,{urlRegexes:o,selector:a}=A,p=x(A,["urlRegexes","selector"]);if(!o.some(t))return r;let u=a,{cssString:c}=u,h=x(u,["cssString"]),g=r.findIndex(y=>{var S=y,{selector:E}=S,R=x(S,["selector"]);let w=E,I=x(w,["cssString"]);return lodash.isEqual(h,I)&&lodash.isEqual(p,R)});return g===-1?r.push(v({selector:a},p)):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})},Wt=(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:p})=>p.some(t))};function kt(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 A;let o=((A=n[e])!=null?A:[]).map(g=>{var u=g,{urlRegexes:c}=u,h=x(u,["urlRegexes"]);return N(v({},h),{urlRegexes:c.map(E=>new RegExp(E))})}).filter(({urlRegexes:c})=>c.some(t)),a=new Set,p={},d=c=>{var u,E;if(a.has(c))return;let h=((u=l[c])!=null?u:[b]).join("|");((E=s[c])!=null?E:[]).forEach(R=>{let{selector:y,parentDepth:S}=typeof R=="string"?{selector:R,parentDepth:0}:R;p[h]||(p[h]={});let P=p[h];P[S]||(P[S]=new Set),P[S].add(y);}),a.add(c);};return i.forEach(d),o.forEach(({providers:c})=>c.forEach(d)),Object.entries(p).map(([c,h])=>Object.entries(h).map(([g,u])=>({parentDepth:Number(g),selector:kt(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,i,l,r,o,a,p,d,A]=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:p,providersCategories:d,blacklistedHypelabCampaignsSlugs:A,timestamp:Date.now()}});this.api=Ut__default.default.create({baseURL:t,adapter:"fetch"});}getApiPath(t,n){return `/ads-rules/${m.EXTENSION_VERSION}${t}${n?m.IS_MISES_BROWSER?"/mises":"/no-mises":""}`}};
|
|
16
16
|
|
|
17
|
-
exports.TempleAdsApi =
|
|
17
|
+
exports.TempleAdsApi = we;
|
|
18
18
|
exports.configureAds = At;
|
|
19
19
|
exports.executeAdsActions = bt;
|
|
20
20
|
exports.getAdsActions = vt;
|
|
21
|
-
exports.renderAdsStack =
|
|
21
|
+
exports.renderAdsStack = Ct;
|
|
22
22
|
exports.transformRawRules = Dt;
|
|
@@ -11,12 +11,19 @@ interface ReferralTextIconRule {
|
|
|
11
11
|
iconHeight?: number;
|
|
12
12
|
}
|
|
13
13
|
|
|
14
|
-
declare function processAnchors(supportedDomains: Set<string>, textIconRules: ReferralTextIconRule[], AdsBrowserExtensionMessageType: AdsBrowserExtensionMessageTypeI, redirectUrl?: string): Promise<undefined>;
|
|
15
14
|
interface AdsBrowserExtensionMessageTypeI {
|
|
16
|
-
|
|
15
|
+
FetchTakeAdsReferrals: string;
|
|
17
16
|
ReferralClick: string;
|
|
18
17
|
}
|
|
19
18
|
|
|
19
|
+
declare function processTakeAdsAnchors(supportedDomains: Set<string>, textIconRules: ReferralTextIconRule[], AdsBrowserExtensionMessageType: AdsBrowserExtensionMessageTypeI, redirectUrl?: string): Promise<undefined>;
|
|
20
|
+
|
|
21
|
+
interface TempleReferralLinkItem {
|
|
22
|
+
targetUrl: string;
|
|
23
|
+
referralLink: string;
|
|
24
|
+
}
|
|
25
|
+
declare function processTempleAnchors(linkItems: TempleReferralLinkItem[], textIconRules: ReferralTextIconRule[], AdsBrowserExtensionMessageType: AdsBrowserExtensionMessageTypeI): Promise<undefined>;
|
|
26
|
+
|
|
20
27
|
/**
|
|
21
28
|
* API docs: https://docs.takeads.com
|
|
22
29
|
*/
|
|
@@ -37,4 +44,4 @@ interface AffiliateLink {
|
|
|
37
44
|
imageUrl: string | null;
|
|
38
45
|
}
|
|
39
46
|
|
|
40
|
-
export { buildTakeadsClient, getCurrentPageDomain,
|
|
47
|
+
export { buildTakeadsClient, getCurrentPageDomain, processTakeAdsAnchors, processTempleAnchors };
|
package/dist/referrals/index.js
CHANGED
|
@@ -1,18 +1,19 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var
|
|
3
|
+
var S = require('webextension-polyfill');
|
|
4
4
|
var lodash = require('lodash');
|
|
5
|
-
var
|
|
6
|
-
var
|
|
5
|
+
var C = require('axios');
|
|
6
|
+
var N = require('memoizee');
|
|
7
7
|
|
|
8
8
|
function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
|
|
9
9
|
|
|
10
|
-
var
|
|
11
|
-
var
|
|
12
|
-
var
|
|
10
|
+
var S__default = /*#__PURE__*/_interopDefault(S);
|
|
11
|
+
var C__default = /*#__PURE__*/_interopDefault(C);
|
|
12
|
+
var N__default = /*#__PURE__*/_interopDefault(N);
|
|
13
13
|
|
|
14
|
-
var
|
|
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});
|
|
15
15
|
|
|
16
|
-
exports.buildTakeadsClient =
|
|
16
|
+
exports.buildTakeadsClient = B;
|
|
17
17
|
exports.getCurrentPageDomain = x;
|
|
18
|
-
exports.
|
|
18
|
+
exports.processTakeAdsAnchors = M;
|
|
19
|
+
exports.processTempleAnchors = _;
|
package/package.json
CHANGED
package/src/ads-configuration.ts
CHANGED
|
@@ -13,6 +13,7 @@ interface AdsStackIframeURLParams {
|
|
|
13
13
|
}
|
|
14
14
|
|
|
15
15
|
interface IAdsConfiguration {
|
|
16
|
+
hypelabPropertySlug: string;
|
|
16
17
|
adsTwWindowUrl: string;
|
|
17
18
|
tkeyInpageAdUrl: string;
|
|
18
19
|
smallTkeyInpageAdUrl?: string;
|
|
@@ -37,6 +38,7 @@ interface IAdsConfiguration {
|
|
|
37
38
|
}
|
|
38
39
|
|
|
39
40
|
export class AdsConfiguration {
|
|
41
|
+
static HYPELAB_PROPERTY_SLUG = '';
|
|
40
42
|
static IS_MISES_BROWSER = false;
|
|
41
43
|
static ADS_TW_WINDOW_URL = '';
|
|
42
44
|
static TKEY_INPAGE_AD_URL = '';
|
|
@@ -56,6 +58,7 @@ export class AdsConfiguration {
|
|
|
56
58
|
|
|
57
59
|
export const configureAds = (config: IAdsConfiguration) => {
|
|
58
60
|
const {
|
|
61
|
+
hypelabPropertySlug,
|
|
59
62
|
adsTwWindowUrl,
|
|
60
63
|
tkeyInpageAdUrl,
|
|
61
64
|
smallTkeyInpageAdUrl,
|
|
@@ -77,6 +80,7 @@ export const configureAds = (config: IAdsConfiguration) => {
|
|
|
77
80
|
AdsConfiguration.SMALL_TKEY_INPAGE_AD_URL = smallTkeyInpageAdUrl;
|
|
78
81
|
}
|
|
79
82
|
|
|
83
|
+
AdsConfiguration.HYPELAB_PROPERTY_SLUG = hypelabPropertySlug;
|
|
80
84
|
AdsConfiguration.ADS_TW_WINDOW_URL = adsTwWindowUrl;
|
|
81
85
|
AdsConfiguration.TKEY_INPAGE_AD_URL = tkeyInpageAdUrl;
|
|
82
86
|
AdsConfiguration.SWAP_TKEY_URL = swapTkeyUrl;
|
|
@@ -37,6 +37,7 @@ export const makeAdsTwView = (params: AdsTwParams): AdView => {
|
|
|
37
37
|
const plainSearchParamsKeys: Record<string, string> = {
|
|
38
38
|
height: 'h',
|
|
39
39
|
slug: 'p',
|
|
40
|
+
ps: 'ps',
|
|
40
41
|
id: 'id',
|
|
41
42
|
themeColor: 'tc',
|
|
42
43
|
fontSize: 'fs',
|
|
@@ -57,6 +58,8 @@ const getAdsTwUrl = ({ source, origin, dimensions, ...restParams }: AdsTwParams)
|
|
|
57
58
|
url.searchParams.set(key, String(value));
|
|
58
59
|
};
|
|
59
60
|
|
|
61
|
+
setUrlSearchParam('ps', AdsConfiguration.HYPELAB_PROPERTY_SLUG);
|
|
62
|
+
|
|
60
63
|
setUrlSearchParam('ap', providerName.toLowerCase());
|
|
61
64
|
if (native) {
|
|
62
65
|
setUrlSearchParam('vh', height);
|
|
@@ -2,26 +2,25 @@ import browser from 'webextension-polyfill';
|
|
|
2
2
|
|
|
3
3
|
import { IS_DEV, IS_MAC_OS, isTruthy } from 'src/utils';
|
|
4
4
|
|
|
5
|
-
import type { TekeadsAffiliateResponse } from './takeads';
|
|
6
5
|
import { getCurrentPageDomain, ReferralTextIconRule, stripSubdomain } from './utils';
|
|
7
6
|
|
|
8
7
|
const TEMPLE_WALLET_ANCHOR_ATTRIBUTE = 'data-tw-referral';
|
|
9
8
|
|
|
10
|
-
export
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
) {
|
|
9
|
+
export interface AdsBrowserExtensionMessageTypeI {
|
|
10
|
+
FetchTakeAdsReferrals: string;
|
|
11
|
+
ReferralClick: string;
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
export const getItemsToReplace = (supportedDomains?: Set<string>) => {
|
|
16
15
|
const anchors = Array.from(document.querySelectorAll('a'));
|
|
17
16
|
if (!anchors.length) throw new Error('No anchors found');
|
|
18
17
|
|
|
19
|
-
|
|
18
|
+
return anchors
|
|
20
19
|
.map(aElem => {
|
|
21
20
|
if (aElem.hasAttribute(TEMPLE_WALLET_ANCHOR_ATTRIBUTE)) return null;
|
|
22
21
|
|
|
23
22
|
const urlDomain = getDomain(aElem.href);
|
|
24
|
-
if (!urlDomain || !supportedDomains.has(urlDomain)) return null;
|
|
23
|
+
if (!urlDomain || (supportedDomains && !supportedDomains.has(urlDomain))) return null;
|
|
25
24
|
|
|
26
25
|
const iri = cleanLink(aElem.href);
|
|
27
26
|
if (!iri) return null;
|
|
@@ -29,47 +28,7 @@ export async function processAnchors(
|
|
|
29
28
|
return { iri, aElem, urlDomain };
|
|
30
29
|
})
|
|
31
30
|
.filter(isTruthy);
|
|
32
|
-
|
|
33
|
-
if (!items.length) return void (IS_DEV && console.info('Nothing to replace'));
|
|
34
|
-
|
|
35
|
-
const links = items.map(l => l.iri);
|
|
36
|
-
|
|
37
|
-
// Not requesting directly in content script because of CORS.
|
|
38
|
-
const takeadsItems: TekeadsAffiliateResponse = await browser.runtime.sendMessage({
|
|
39
|
-
type: AdsBrowserExtensionMessageType.FetchReferrals,
|
|
40
|
-
links
|
|
41
|
-
});
|
|
42
|
-
|
|
43
|
-
if (!takeadsItems.data.length) return void (IS_DEV && console.info('No referrals received'));
|
|
44
|
-
|
|
45
|
-
IS_DEV && console.info('Replacing', takeadsItems.data.length, 'referralas');
|
|
46
|
-
|
|
47
|
-
for (const { iri, aElem, urlDomain } of items) {
|
|
48
|
-
const data = takeadsItems.data.find(item => item.iri === iri);
|
|
49
|
-
const referralUrl = data?.trackingLink;
|
|
50
|
-
|
|
51
|
-
if (!referralUrl) {
|
|
52
|
-
IS_DEV && console.warn('No affiliate link for', aElem);
|
|
53
|
-
continue;
|
|
54
|
-
}
|
|
55
|
-
|
|
56
|
-
const imageUrl = data.imageUrl;
|
|
57
|
-
|
|
58
|
-
processAnchorElement(
|
|
59
|
-
{ iri, aElem, urlDomain, referralUrl, imageUrl },
|
|
60
|
-
textIconRules,
|
|
61
|
-
AdsBrowserExtensionMessageType,
|
|
62
|
-
redirectUrl
|
|
63
|
-
);
|
|
64
|
-
}
|
|
65
|
-
|
|
66
|
-
return;
|
|
67
|
-
}
|
|
68
|
-
|
|
69
|
-
interface AdsBrowserExtensionMessageTypeI {
|
|
70
|
-
FetchReferrals: string;
|
|
71
|
-
ReferralClick: string;
|
|
72
|
-
}
|
|
31
|
+
};
|
|
73
32
|
|
|
74
33
|
interface PreppedItem {
|
|
75
34
|
iri: string;
|
|
@@ -79,10 +38,11 @@ interface PreppedItem {
|
|
|
79
38
|
imageUrl?: string | null;
|
|
80
39
|
}
|
|
81
40
|
|
|
82
|
-
function processAnchorElement(
|
|
41
|
+
export function processAnchorElement(
|
|
83
42
|
item: PreppedItem,
|
|
84
43
|
textIconRules: ReferralTextIconRule[],
|
|
85
44
|
AdsBrowserExtensionMessageType: AdsBrowserExtensionMessageTypeI,
|
|
45
|
+
provider: 'TakeAds' | 'Temple',
|
|
86
46
|
redirectUrl?: string
|
|
87
47
|
) {
|
|
88
48
|
const { aElem, urlDomain, referralUrl, imageUrl } = item;
|
|
@@ -102,7 +62,8 @@ function processAnchorElement(
|
|
|
102
62
|
browser.runtime.sendMessage({
|
|
103
63
|
type: AdsBrowserExtensionMessageType.ReferralClick,
|
|
104
64
|
urlDomain,
|
|
105
|
-
pageDomain: getCurrentPageDomain()
|
|
65
|
+
pageDomain: getCurrentPageDomain(),
|
|
66
|
+
provider
|
|
106
67
|
});
|
|
107
68
|
|
|
108
69
|
const newTab = event.button === 1 || (IS_MAC_OS ? event.metaKey : event.ctrlKey);
|
package/src/referrals/index.ts
CHANGED
|
@@ -0,0 +1,52 @@
|
|
|
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
|
+
}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { IS_DEV } from '../utils';
|
|
2
|
+
|
|
3
|
+
import { AdsBrowserExtensionMessageTypeI, getItemsToReplace, processAnchorElement } from './common';
|
|
4
|
+
import { ReferralTextIconRule } from './utils';
|
|
5
|
+
|
|
6
|
+
interface TempleReferralLinkItem {
|
|
7
|
+
targetUrl: string;
|
|
8
|
+
referralLink: string;
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
export async function processTempleAnchors(
|
|
12
|
+
linkItems: TempleReferralLinkItem[],
|
|
13
|
+
textIconRules: ReferralTextIconRule[],
|
|
14
|
+
AdsBrowserExtensionMessageType: AdsBrowserExtensionMessageTypeI
|
|
15
|
+
) {
|
|
16
|
+
const items = getItemsToReplace();
|
|
17
|
+
|
|
18
|
+
if (!items.length) return void (IS_DEV && console.info('Nothing to replace'));
|
|
19
|
+
|
|
20
|
+
for (const { iri, aElem, urlDomain } of items) {
|
|
21
|
+
const data = linkItems.find(item => item.targetUrl === iri);
|
|
22
|
+
const referralUrl = data?.referralLink;
|
|
23
|
+
|
|
24
|
+
if (!referralUrl) {
|
|
25
|
+
IS_DEV && console.warn('No affiliate link for', aElem);
|
|
26
|
+
continue;
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
const imageUrl =
|
|
30
|
+
'https://raw.githubusercontent.com/madfish-solutions/templewallet-extension/development/public/misc/icon-128.png';
|
|
31
|
+
|
|
32
|
+
processAnchorElement(
|
|
33
|
+
{ iri, aElem, urlDomain, referralUrl, imageUrl },
|
|
34
|
+
textIconRules,
|
|
35
|
+
AdsBrowserExtensionMessageType,
|
|
36
|
+
'Temple'
|
|
37
|
+
);
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
return;
|
|
41
|
+
}
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
import { AdType } from 'src/types/ads-actions';
|
|
2
|
-
import { AdMetadata } from 'src/types/ads-meta';
|
|
3
|
-
export declare const PX_VALUE_REGEX: RegExp;
|
|
4
|
-
export declare const ourAdQuerySelector = "[twa]";
|
|
5
|
-
export declare const ourBannerAdQuerySelector = "[twa]:not([twa-native])";
|
|
6
|
-
export declare const ourNativeAdQuerySelector = "[twa-native]";
|
|
7
|
-
export declare const parsePxValue: (value: string, fallback: number) => number;
|
|
8
|
-
export declare const extendOrKeepDimension: (element: HTMLElement, dimension: 'width' | 'height', suggestedValue: number) => void;
|
|
9
|
-
export declare const sumPxValues: (values: string[]) => number;
|
|
10
|
-
export declare const elementIsOurAd: (element: Element) => boolean;
|
|
11
|
-
export declare const prevBannerSiblingIsReplacement: (banner: Element) => boolean;
|
|
12
|
-
export declare const getFinalSize: (element: Element) => {
|
|
13
|
-
width: number;
|
|
14
|
-
height: number;
|
|
15
|
-
};
|
|
16
|
-
export declare const applyQuerySelector: <E extends Element = Element>(querySelector: string, isMultiple: boolean, element?: Element | Document) => E[];
|
|
17
|
-
export declare const getParentOfDepth: (element: HTMLElement, depth: number) => HTMLElement | null;
|
|
18
|
-
export declare const pickAdsToDisplay: (containerWidth: number, containerHeight: number, adType: AdType, adIsNative: boolean, expectedCategories: string[]) => (number | AdMetadata)[];
|
|
19
|
-
export declare const elementIsHidden: (element: Element) => boolean;
|