@temple-wallet/extension-ads 18.0.0-beta.1 → 18.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/ads-actions/crypto-keywords.json +464 -0
- package/dist/ads-actions/helpers.d.ts +3 -0
- package/dist/ads-actions/helpers.js +91 -1
- package/dist/ads-actions/helpers.js.map +1 -1
- package/dist/ads-actions/index.d.ts +2 -1
- package/dist/ads-actions/index.js +27 -23
- package/dist/ads-actions/index.js.map +1 -1
- package/dist/ads-actions/process-providers-ads.js +2 -1
- package/dist/ads-actions/process-providers-ads.js.map +1 -1
- package/dist/ads-actions/process-youtube-home-ads.d.ts +20 -0
- package/dist/ads-actions/process-youtube-home-ads.js +139 -0
- package/dist/ads-actions/process-youtube-home-ads.js.map +1 -0
- package/dist/ads-actions/process-youtube-search-ads.d.ts +3 -0
- package/dist/ads-actions/process-youtube-search-ads.js +115 -0
- package/dist/ads-actions/process-youtube-search-ads.js.map +1 -0
- package/dist/ads-actions/process-youtube-watch-ads.d.ts +3 -0
- package/dist/ads-actions/process-youtube-watch-ads.js +115 -0
- package/dist/ads-actions/process-youtube-watch-ads.js.map +1 -0
- package/dist/ads-configuration.d.ts +8 -3
- package/dist/ads-configuration.js +7 -3
- package/dist/ads-configuration.js.map +1 -1
- package/dist/ads-flows/youtube-home.d.ts +2 -0
- package/dist/ads-flows/youtube-home.js +27 -0
- package/dist/ads-flows/youtube-home.js.map +1 -0
- package/dist/ads-flows/youtube-search.d.ts +2 -0
- package/dist/ads-flows/youtube-search.js +23 -0
- package/dist/ads-flows/youtube-search.js.map +1 -0
- package/dist/ads-flows/youtube-watch.d.ts +2 -0
- package/dist/ads-flows/youtube-watch.js +23 -0
- package/dist/ads-flows/youtube-watch.js.map +1 -0
- package/dist/execute-ads-actions/ads-views/make-ads-tw-view.js +2 -1
- package/dist/execute-ads-actions/ads-views/make-ads-tw-view.js.map +1 -1
- package/dist/execute-ads-actions/index.d.ts +1 -1
- package/dist/execute-ads-actions/index.js +9 -2
- package/dist/execute-ads-actions/index.js.map +1 -1
- package/dist/execute-ads-actions/process-insert-ad-action.d.ts +1 -1
- package/dist/execute-ads-actions/process-insert-ad-action.js +30 -9
- package/dist/execute-ads-actions/process-insert-ad-action.js.map +1 -1
- package/dist/index.js +11 -11
- package/dist/index.js.map +1 -1
- package/dist/referrals/common.d.ts +1 -2
- package/dist/referrals/common.js.map +1 -1
- package/dist/referrals/index.js.map +1 -1
- package/dist/temple-ads-api.d.ts +2 -1
- package/dist/temple-ads-api.js +4 -0
- package/dist/temple-ads-api.js.map +1 -1
- package/dist/types/ads-actions.d.ts +30 -4
- package/dist/types/ads-actions.js +2 -0
- package/dist/types/ads-actions.js.map +1 -1
- package/dist/types/temple-ads-api.d.ts +36 -0
- package/package.json +1 -1
- package/src/execute-ads-actions/children-add-or-remove-changes.ts +43 -0
- package/src/execute-ads-actions/index.ts +8 -3
- package/src/execute-ads-actions/process-insert-ad-action.ts +26 -2
- package/src/transform-raw-rules.ts +6 -1
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 bt = require('webextension-polyfill');
|
|
7
7
|
var cryptoJs = require('crypto-js');
|
|
8
|
-
var
|
|
8
|
+
var Vt = require('axios');
|
|
9
9
|
|
|
10
10
|
function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
|
|
11
11
|
|
|
12
|
-
var
|
|
13
|
-
var
|
|
12
|
+
var bt__default = /*#__PURE__*/_interopDefault(bt);
|
|
13
|
+
var Vt__default = /*#__PURE__*/_interopDefault(Vt);
|
|
14
14
|
|
|
15
|
-
var mt=Object.defineProperty,pt=Object.defineProperties;var At=Object.getOwnPropertyDescriptors;var de=Object.getOwnPropertySymbols;var Ge=Object.prototype.hasOwnProperty,Fe=Object.prototype.propertyIsEnumerable;var Ye=(e,t,s)=>t in e?mt(e,t,{enumerable:!0,configurable:!0,writable:!0,value:s}):e[t]=s,v=(e,t)=>{for(var s in t||(t={}))Ge.call(t,s)&&Ye(e,s,t[s]);if(de)for(var s of de(t))Fe.call(t,s)&&Ye(e,s,t[s]);return e},N=(e,t)=>pt(e,At(t));var I=(e,t)=>{var s={};for(var r in e)Ge.call(e,r)&&t.indexOf(r)<0&&(s[r]=e[r]);if(e!=null&&de)for(var r of de(e))t.indexOf(r)<0&&Fe.call(e,r)&&(s[r]=e[r]);return s};var w=(e,t,s)=>new Promise((r,o)=>{var l=i=>{try{a(s.next(i));}catch(d){o(d);}},n=i=>{try{a(s.throw(i));}catch(d){o(d);}},a=i=>i.done?r(i.value):Promise.resolve(i.value).then(l,n);a((s=s.apply(e,t)).next());});var z="twa",se="twa-native",re="twa-hidden",K="twa-sibling-replacement";var ce="adRenderStart",me="resize",ne="ready",ie="impression",oe="error",pe="adThemingParamsChange",Ae="ping",he="pong",ue="accelerometer; gyroscope",L="crypto",ve="background";process&&process.env&&process.env.NODE_ENV==="development";navigator.userAgent.includes("Macintosh");var Ve=e=>!!e,ht=300,D=(e=ht)=>new Promise(t=>setTimeout(t,e)),ge=(e,t)=>{let s=()=>{var l;return (l=e.contentWindow)==null?void 0:l.postMessage(JSON.stringify({type:Ae}),"*")},r=l=>{if(l.source===e.contentWindow)try{let n=typeof l.data=="string"?JSON.parse(l.data):l.data;(n==null?void 0:n.type)===he&&(t(),window.removeEventListener("message",r),clearInterval(o));}catch(n){}};window.addEventListener("message",r),s();let o=setInterval(()=>s(),100);};var h=class{};h.HYPELAB_PROPERTY_SLUG="",h.IS_MISES_BROWSER=!1,h.ADS_TW_WINDOW_URL="",h.TKEY_INPAGE_AD_URL="",h.SMALL_TKEY_INPAGE_AD_URL="",h.SWAP_TKEY_URL="",h.EXTERNAL_ADS_ACTIVITY_MESSAGE_TYPE="",h.getAdsStackIframeURL=()=>"",h.buildNativeAdsMeta=()=>[],h.pickNextAdMetadata=()=>{},h.makeThemingParamsChangeMessage=()=>"",h.bannerAdsMeta=[];var ut=e=>{let{hypelabPropertySlug:t,adsTwWindowUrl:s,tkeyInpageAdUrl:r,smallTkeyInpageAdUrl:o,swapTkeyUrl:l,externalAdsActivityMessageType:n,getAdsStackIframeURL:a,buildNativeAdsMeta:i,bannerAdsMeta:d,extVersion:g,templePassphrase:m,isMisesBrowser:c,pickNextAdMetadata:p,evmAccountAddress:A,chainName:u,makeThemingParamsChangeMessage:E}=e;o&&(h.SMALL_TKEY_INPAGE_AD_URL=o),h.HYPELAB_PROPERTY_SLUG=t,h.ADS_TW_WINDOW_URL=s,h.TKEY_INPAGE_AD_URL=r,h.SWAP_TKEY_URL=l,h.EXTERNAL_ADS_ACTIVITY_MESSAGE_TYPE=n,h.getAdsStackIframeURL=a,h.buildNativeAdsMeta=i,h.pickNextAdMetadata=p,h.bannerAdsMeta=d,h.EXTENSION_VERSION=g,h.TEMPLE_PASSPHRASE=m,h.IS_MISES_BROWSER=c,h.evmAccountAddress=A,h.chainName=u,h.makeThemingParamsChangeMessage=E;};var X=/[\d.]+(px)?$/,j=`[${z}]`,$e=`[${z}]:not([${se}])`,ze=`[${se}]`,Q=(e,t)=>{let s=parseInt(e,10);return isNaN(s)||!X.test(e)?t:s},F=(e,t,s)=>{e.style[t]=`${Math.max(Q(e.style[t],0),s)}px`;},q=e=>e.reduce((t,s)=>t+Q(s,0),0),J=e=>!!e.closest(j),Ee=e=>{var t;return !!((t=e.previousElementSibling)!=null&&t.getAttribute(K))},ae=e=>{let t=getComputedStyle(e),{x:s,right:r,width:o,height:l}=e.getBoundingClientRect(),n={width:o,height:l},a=["width","height"];for(let i of a){let d=t[i],g=e.getAttribute(i),m=Math.max(...[d,g].map(c=>Q(c!=null?c:"",-1)));m!==-1&&(n[i]=m),i==="width"&&s<0?n.width+=s:i==="width"&&r>window.innerWidth&&(n.width=window.innerWidth-s);}return n},C=(e,t,s=document)=>e?t?[...s.querySelectorAll(e)]:[s.querySelector(e)].filter(r=>!!r):[],k=(e,t)=>{let s=e;for(let r=0;r<t;r++){let o=s.parentElement;if(!o)return null;s=o;}return s},Ke=(e,t,s,r,o)=>{if(e<2&&t<2)return [];if(r)return h.buildNativeAdsMeta(e,t);let l=s==="permanent"||s==="slot-replacement"?h.bannerAdsMeta.filter(({source:i})=>i.shouldNotUseStrictContainerLimits):[],n=Math.max(e,...l.map(({dimensions:i})=>i.width)),a=Math.max(t,...l.map(({dimensions:i})=>i.height));return h.bannerAdsMeta.reduce((i,{dimensions:d,source:g},m)=>{let{shouldNotUseStrictContainerLimits:c=!1,categories:p=[L],providerName:A}=g;if(p.every(b=>!o.includes(b))||i.some(b=>h.bannerAdsMeta[b].source.providerName===A))return i;let{minContainerWidth:u,minContainerHeight:E,width:R,maxContainerWidth:T,maxContainerHeight:P}=d,M=!1;switch(s){case"permanent":M=c||n>=R&&(a>=E||a<2);break;case"slot-replacement":M=c||n>=u&&(a>=E||a<2);break;default:M=e>=u&&t>=E&&e<=T&&t<=P;}return M&&i.push(m),i},[])},gt=e=>{let{x:t,y:s,width:r,height:o}=e.getBoundingClientRect();return t!==0||s!==0||r!==0||o!==0},Pe=e=>{let{display:t}=window.getComputedStyle(e);switch(t){case"none":return !0;case"contents":return Array.from(e.children).every(s=>Pe(s));default:return !gt(e)}};var Xe=(e,t)=>{let{shouldHide:s,cssString:r,parentDepth:o,isMultiple:l}=e;C(r,l).forEach(n=>{let a=k(n,o);if(!a)return;let i=window.getComputedStyle(a);i.display!=="none"&&i.visibility!=="hidden"&&t.push({type:s?"hide-element":"remove-element",element:a});});};var je=(e,t,s)=>w(void 0,null,function*(){let{parentSelector:r,displayWidth:o}=e,{isMultiple:l,cssString:n,parentDepth:a}=r;if(o&&!semver.satisfies(semver.coerce(window.innerWidth),o))return [];let i=C(n,l).map(d=>k(d,a)).filter(d=>!!d);return yield Promise.all(i.map(d=>w(void 0,null,function*(){yield D(0),Rt(d,e,t,s);}))),i}),Me=(e,t)=>{var s,r;return e?{width:(s=document.querySelector(e.width))!=null?s:t,height:(r=document.querySelector(e.height))!=null?r:t}:{width:t,height:t}},Rt=(e,t,s,r)=>{var Oe;let ke=t,{shouldUseDivWrapper:o,divWrapperStyle:l,wrapperStyle:n,elementStyle:a,adSelector:i,insertionIndex:d,insertBeforeSelector:g,insertAfterSelector:m,insertionsCount:c=1,elementsToMeasureSelectors:p,stylesOverrides:A,shouldHideOriginal:u=!1,isNative:E,urlRegexes:R,parentSelector:T,supportsTheming:P,enableForNonMises:M,fontSampleSelector:b,displayWidth:f}=ke,S=I(ke,["shouldUseDivWrapper","divWrapperStyle","wrapperStyle","elementStyle","adSelector","insertionIndex","insertBeforeSelector","insertAfterSelector","insertionsCount","elementsToMeasureSelectors","stylesOverrides","shouldHideOriginal","isNative","urlRegexes","parentSelector","supportsTheming","enableForNonMises","fontSampleSelector","displayWidth"]),x=S.wrapperType?n:o?l:{display:"contents"},{isMultiple:_,cssString:O,parentDepth:V}=i,B=C(E?ze:$e,!0,e).reduce((y,W)=>y.some($=>$.contains(W))?y:[...y.filter($=>!W.contains($)),W],[]),U=B.filter(y=>Pe(y)&&!y.hasAttribute(re)),Y=B.length-U.length,G=c-Y;if(C(O,_,e).map(y=>k(y,V)).filter(y=>Ve(y)&&!J(y)).forEach(y=>{var $;let W=window.getComputedStyle(y).display==="none";if(G<=0)(!u||!W)&&r.push({type:u?"hide-element":"remove-element",element:y});else {let lt=Me(p,(($=y.parentElement)==null?void 0:$.children.length)===1?y.parentElement:y),Be=v({fontSampleSelector:P?b:void 0,supportsTheming:P,wrapperStyle:x,elementStyle:a,stylesOverrides:A},S),dt=v({type:"replace-element",element:y,adCategories:[L]},Be),We={type:"hide-element",element:y},ct=v({type:"simple-insert-ad",parent:y.parentElement,insertionIndex:Array.from(y.parentElement.children).indexOf(y),isSiblingReplacement:!0,adCategories:[L]},Be),te=[],Ue=Ee(y);u&&Ue&&!W?te=[We]:u&&!Ue?te=[We,ct]:u||(te=[dt]),te.length>0&&s(lt,"permanent",E,[L],...te)&&G--;}}),G<=0)return;let ee=-1,He=e,Se={width:e,height:e},De=g||m;if(De){let y=e.querySelector(De),W=y==null?void 0:y.parentElement;y&&W&&(He=W,ee=Array.from(e.children).indexOf(y)+(g?0:1),Se=Me(p,y));}else {let y=d!=null?d:0;ee=y<0?Math.max(e.children.length+y,0):Math.min(y,e.children.length),Se=Me(p,(Oe=e.children[ee])!=null?Oe:e);}if(ee!==-1){let y=v({type:"simple-insert-ad",wrapperStyle:x,elementStyle:a,parent:He,insertionIndex:ee,isSiblingReplacement:!1,stylesOverrides:A,adCategories:[L]},S);s(Se,"permanent",E,[L],...Array(G).fill(y));}};var St=["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"],vt=lodash.memoize(e=>e.reduce((t,{dimensions:s})=>{let r=t.filter(({width:o,height:l})=>o<s.width||l<s.height);return (r.length===0||r.some(({width:o,height:l})=>o>s.width||l>s.height))&&r.push(s),r},[])),Qe=(e,t,s,r)=>w(void 0,null,function*(){let o=vt(h.bannerAdsMeta),l=e.map(({selector:a,parentDepth:i,categories:d})=>C(a,!0).reduce((g,m)=>{var f;let c=(f=k(m,i))!=null?f:m,p=g.findIndex(({element:S})=>S.contains(c)),A=c.parentElement&&window.getComputedStyle(c.parentElement),{width:u,height:E}=ae(c),R=r.some(S=>{var x;return S.type==="replace-all-children"||S.type==="simple-insert-ad"?S.parent.contains(c)||c.contains(S.parent):((x=S.element.parentElement)==null?void 0:x.contains(c))||c.contains(S.element)}),T=(A==null?void 0:A.display)==="none"||(A==null?void 0:A.visibility)==="hidden",P=p>=0&&g[p]instanceof HTMLAnchorElement,M=o.some(({width:S,height:x})=>u>=S&&E>=x);if(R||!M||T||P)return g;let b={element:c,categories:d};return p>=0?g.splice(p,1,b):g.some(({element:S})=>S.contains(c))||g.push(b),g},[])).flat(),n=t.map(({selector:a,parentDepth:i})=>C(a,!0).map(d=>k(d,i)).filter(d=>!!d)).flat();l=l.filter(({element:a})=>!n.includes(a)),yield Promise.all(l.map(d=>w(void 0,[d],function*({element:a,categories:i}){var A,u,E,R,T,P,M,b;yield D(0);let g=a.parentElement,{width:m,height:c}=window.getComputedStyle(a),p=X.test(m)&&X.test(c)?a:(u=(A=g==null?void 0:g.closest("div, article, aside, footer, header"))!=null?A:(g==null?void 0:g.tagName.toLowerCase())==="body"?void 0:g)!=null?u:a;if(!J(a)&&!a.querySelector(j)&&!r.some(f=>f.type==="simple-insert-ad"?!1:f.type==="replace-all-children"?f.parent.contains(a):f.element===a)){let f=(E=a.getAttribute("style"))!=null?E:"",S=Object.fromEntries(f.split(";").filter(Boolean).map(Y=>Y.split(":").map(G=>G.trim())));if((R=S.width)!=null&&R.match(/^0[a-z]/)||(T=S.height)!=null&&T.match(/^0[a-z]/))return;let x=window.getComputedStyle(a),_=v(v({},Object.fromEntries(St.map(Y=>[Y,x.getPropertyValue(Y)]))),S);_.display==="none"&&delete _.display;let O={type:"hide-element",element:a},V={type:"simple-insert-ad",wrapperStyle:_,parent:(P=a.parentElement)!=null?P:document.body,insertionIndex:Array.from((b=(M=a.parentElement)==null?void 0:M.children)!=null?b:[]).indexOf(a),isSiblingReplacement:!0,shouldUseBlurredBackground:!0,adCategories:i},B,U=a.closest(`[${K}] + *`);U&&U!==a?B=[{type:"remove-element",element:U.previousElementSibling},O,V]:U?B=window.getComputedStyle(a).display==="none"?[]:[O]:B=[O,V],s({width:p,height:p},"provider-replacement",!1,i,...B);}})));});var qe=(e,t,s)=>w(void 0,null,function*(){let{cssString:r,isMultiple:o}=e.selector,l=C(r,o);yield Promise.all(l.map(n=>w(void 0,null,function*(){yield D(0),Tt(n,e,t,s);})));}),Tt=(e,t,s,r)=>{let{selector:{shouldUseDivWrapper:o,parentDepth:l,divWrapperStyle:n,elementStyle:a},stylesOverrides:i,shouldHideOriginal:d,isNative:g=!1,supportsTheming:m=!1,fontSampleSelector:c}=t,p=k(e,l);if(!p||s.some(E=>E.contains(p))||J(p)||p.querySelector(j))return;let A={shouldUseDivWrapper:o,wrapperStyle:n,elementStyle:a,supportsTheming:m,fontSampleSelector:c},u;if(o&&d){let E=p.parentElement,R=window.getComputedStyle(p).display==="none",T=v({type:"simple-insert-ad",parent:E,insertionIndex:Array.from(E.children).indexOf(p),stylesOverrides:i==null?void 0:i.map(b=>{var f=b,{parentDepth:P}=f,M=I(f,["parentDepth"]);return N(v({},M),{parentDepth:P-1})}),isSiblingReplacement:!0,adCategories:[L]},A);u=[],R||u.push({type:"hide-element",element:p}),Ee(p)||u.push(T);}else if(o)u=[v({type:"replace-element",element:p,stylesOverrides:i==null?void 0:i.map(P=>{var M=P,{parentDepth:R}=M,T=I(M,["parentDepth"]);return N(v({},T),{parentDepth:R-1})}),adCategories:[L]},A)];else if(d){let E={type:"simple-insert-ad",parent:p,insertionIndex:0,stylesOverrides:i,isSiblingReplacement:!0,adCategories:[L],wrapperStyle:{display:"contents"}};u=Array.from(p.children).filter(R=>window.getComputedStyle(R).display!=="none").map(R=>({type:"hide-element",element:R})),p.querySelector(j)||u.push(E);}else u=[{type:"replace-all-children",parent:p,stylesOverrides:i,adCategories:[L],wrapperStyle:{display:"contents"}}];u.length>0&&r({width:p,height:p},"slot-replacement",g,[L],...u);};var Pt=l=>w(void 0,[l],function*({providersSelectors:e,providersNegativeSelectors:t,adPlacesRules:s,permanentAdPlacesRules:r,elementsToHideOrRemoveRules:o}){let n=[],a=(d,g,m,c,...p)=>{if(p.length>0&&p.every(_=>_.type==="hide-element"||_.type==="remove-element"))return n.push(...p),!0;let{width:A}=ae(d.width),{height:u}=ae(d.height),{paddingLeft:E,paddingRight:R}=window.getComputedStyle(d.width),{paddingTop:T,paddingBottom:P}=window.getComputedStyle(d.height),M=q([E,R]),b=M===A?A:A-M,f=q([T,P]),S=f===u?u:u-f,x=Ke(b,S,g,m,c);return x.length?(n.push(...p.map(_=>_.type==="hide-element"||_.type==="remove-element"?_:N(v({},_),{adsMetadata:x,originalWidth:b,originalHeight:S}))),!0):!1},i=[];return yield Promise.all(o.map(d=>w(void 0,null,function*(){yield D(0),Xe(d,n);}))),yield Promise.all(r.map(d=>w(void 0,null,function*(){yield D(0),i=i.concat(yield je(d,a,n));}))),yield Promise.all(s.map(d=>w(void 0,null,function*(){yield D(0),yield qe(d,i,a);}))),yield Qe(e,t,a,n),n});var we=(r=>(r.HypeLab="HypeLab",r.Temple="Temple Wallet",r.Bitmedia="Bitmedia",r))(we||{});var be=new Set,Je=new Set,tt=e=>w(void 0,null,function*(){let t=e.id;if(be.has(t))return;be.add(t);let s=!1;return new Promise((r,o)=>{let l=!1,n,a=i=>{var d,g;if(i.source===e.contentWindow)try{let m=typeof i.data=="string"?JSON.parse(i.data):i.data;if(m.id!==t)return;let c=e.offsetWidth-e.clientWidth,p=e.offsetHeight-e.clientHeight;switch(m.type){case ne:s=Ze(e),n=m.adMetadata.source.providerName,r();break;case oe:window.removeEventListener("message",a),e.style.display="none",o(new Error((d=m.reason)!=null?d:"Unknown error"));break;case ce:let{dimensions:A,source:u}=m.adMetadata;l=(g=u.native)!=null?g:!1;let{width:E,height:R}=A;E>0&&R>0&&(u.native?e.style.height=`${R}px`:(F(e,"width",E),F(e,"height",R)));break;case me:let{width:T,height:P}=m;l?e.style.height=`${P+p}px`:(F(e,"width",T+c),F(e,"height",P+p));break;case ie:n&&s&&wt(n);break}}catch(m){console.error("Observing error:",m);}};window.addEventListener("message",a);}).then(()=>{if(Je.has(t))return;Je.add(t),s=Ze(e),new IntersectionObserver(o=>{s=o.some(l=>l.isIntersecting);},{threshold:.5}).observe(e);}).catch(r=>{throw console.error(r),r}).finally(()=>void be.delete(t))}),wt=e=>{let t=window.parent.location.href;Mt__default.default.runtime.sendMessage({type:h.EXTERNAL_ADS_ACTIVITY_MESSAGE_TYPE,url:t,provider:we[e]}).catch(s=>void console.error(s));},Ze=e=>{let t=e.getBoundingClientRect(),s=window.visualViewport;if(!s)return !1;let r=Math.min(Math.max(0,t.x),s.width),o=Math.min(Math.max(0,t.x+t.width),s.width),l=Math.min(Math.max(0,t.y),s.height),n=Math.min(Math.max(0,t.y+t.height),s.height),a=t.width*t.height;return (o-r)*(n-l)/a>=.5},xe=class{constructor(){this.callbacks=[],this.observer=new MutationObserver(t=>{this.callbacks.forEach(s=>s(t,this.observer));});}hasNoCallbacks(){return this.callbacks.length===0}addCallback(t){this.callbacks.push(t);}removeCallback(t){this.callbacks=this.callbacks.filter(s=>s!==t);}observe(t,s){this.observer.observe(t,s);}disconnect(){this.observer.disconnect();}},fe=new WeakMap,Re=(e,t,s)=>{let r=fe.get(e);r||(r=new xe,fe.set(e,r),r.observe(e,t)),r.addCallback(s);},ye=(e,t)=>{let s=fe.get(e);s&&(s.removeCallback(t),s.hasNoCallbacks()&&(s.disconnect(),fe.delete(e)));};var le=(e,t)=>{for(let s in t)e.style.setProperty(s,t[s]);};var bt=e=>{if(e.toLowerCase()==="transparent"||/^#[0-9A-F]{6}00$/i.exec(e)||/^#[0-9A-F]{3}0$/i.exec(e))return !0;let t=String.raw`(?:0+\.?0*|\.0+)%?`;return !!(new RegExp(String.raw`^(?:rgb|hsl|hwb)a?\s*\([^,)]+,[^,)]+,[^,)]+,\s*${t}\s*\)$`,"i").exec(e)||new RegExp(String.raw`^(?:rgb|hsl|hwb|lab|lch|oklch|oklab)a?\s*\([^/)]+\/\s*${t}\s*\)$`,"i").exec(e)||new RegExp(String.raw`^color\s*\([^/)]+\/\s*${t}\s*\)$`,"i").exec(e))},_e=(e,t)=>{if(!e)return {};let{backgroundColor:s}=window.getComputedStyle(document.body),{backgroundColor:r}=window.getComputedStyle(document.documentElement),o=bt(s)?r:s,l=t?document.querySelector(t):null;if(!l)return {themeColor:o};let{fontSize:n,lineHeight:a}=window.getComputedStyle(l),i=n?Q(n,0):void 0,d=a?Q(a,0):void 0;return {fontSize:i===0?void 0:i,lineHeight:d===0?void 0:d,themeColor:o}};var _t=(e,t)=>{["width","height"].forEach(r=>{var l;let o=(l=e.style[r])!=null?l:"";X.test(o)&&parseInt(o,10)<t[r]&&e.style.removeProperty(r);});},rt=e=>{let{adsMetadata:t,originalHeight:s,originalWidth:r,shouldUseBlurredBackground:o}=e,l=t[0],{dimensions:n}=typeof l=="number"?h.bannerAdsMeta[l]:l;return {width:o?Math.max(r,n.width):n.width,height:o?Math.max(s,n.height):n.height}},It=(e,t,s,r,o)=>w(void 0,null,function*(){let{elementStyle:l={},stylesOverrides:n=[],adsMetadata:a,wrapperType:i,adCategories:d,supportsTheming:g,fontSampleSelector:m}=e;n.sort((f,S)=>f.parentDepth-S.parentDepth);let c,p=nanoid.nanoid(),A=document.createElement("iframe");A.loading="lazy",A.src=h.getAdsStackIframeURL(N(v({id:p,adsMetadataIds:a,origin:window.location.href,adCategories:d},_e(g,m)),{evmAccountAddress:h.evmAccountAddress,chainName:h.chainName})),A.id=p,A.allow=ue;let u=rt(e);A.style.width=i==="tbody"?"100%":`${u.width}px`,A.style.height=`${u.height}px`,A.style.border="none";for(let f in l)A.style.setProperty(f,l[f]);A.setAttribute(z,"true"),s.appendChild(A);let E="parent"in e?e.parent:e.element.parentElement;switch(e.type){case"replace-all-children":c=e.parent,e.parent.innerHTML="",e.parent.appendChild(t);break;case"replace-element":c=e.element.parentElement,e.element.replaceWith(t);break;default:let f=e.parent.children[e.insertionIndex];if(e.isSiblingReplacement){t.setAttribute(K,"true");let S=new MutationObserver(x=>{x.some(O=>Array.from(O.removedNodes).includes(f))&&(t.remove(),S.disconnect());});S.observe(e.parent,{childList:!0});}c=e.parent,e.parent.insertBefore(t,f);break}if(i!=="tbody"){let{borderLeftWidth:f,borderRightWidth:S,borderTopWidth:x,borderBottomWidth:_}=window.getComputedStyle(A),{borderLeftWidth:O,borderRightWidth:V,borderTopWidth:B,borderBottomWidth:U}=window.getComputedStyle(t),Y=q([f,S,O,V]),G=q([x,_,B,U]);l.width||(A.style.width=`${u.width-Y}px`),l.height||(A.style.height=`${u.height-G}px`);}let R=m?document.querySelector(m):null,T=()=>{try{ge(A,()=>{var f;(f=A.contentWindow)==null||f.postMessage(JSON.stringify({type:pe,params:_e(g,m)}),"*");});}catch(f){ye(document.documentElement,T),ye(document.body,T),E&&ye(E,P),M==null||M.disconnect();}},P=f=>{f.some(S=>{let x=Array.from(S.addedNodes);return x.includes(A)||x.some(_=>_.contains(A))})&&T();};g&&(Re(document.documentElement,{attributes:!0},T),Re(document.body,{attributes:!0},T),E&&Re(E,{childList:!0,subtree:!0},P));let M=null;R&&(M=new ResizeObserver(T),M.observe(R)),tt(A).then(r).catch(o);let b=0;n.forEach(({parentDepth:f,style:S})=>{for(;f>b&&c;)c=c.parentElement,b++;c&&le(c,S);});}),st={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"},nt=e=>w(void 0,null,function*(){let{wrapperStyle:t={},adsMetadata:s,wrapperType:r="div",colsAfter:o=0,colsBefore:l=0,colspan:n=1}=e,a=s.every(m=>typeof m=="object"),i,d;if(r==="div")i=document.createElement("div"),d=i;else {i=document.createElement("tbody");let m=document.createElement("tr");i.appendChild(m);for(let p=0;p<l;p++)m.appendChild(document.createElement("td"));let c=document.createElement("td");c.colSpan=n,m.appendChild(c),d=c;for(let p=0;p<o;p++)m.appendChild(document.createElement("td"));}i.setAttribute(z,"true"),i.setAttribute(re,"true"),a&&i.setAttribute(se,"true"),le(i,v(v({},t),st));let g=()=>{for(let m of d.children)d.removeChild(m);};yield It(e,i,d,()=>{for(let m in st)t[m]?i.style.setProperty(m,t[m]):i.style.removeProperty(m);_t(i,rt(e)),i.removeAttribute(re);},m=>{console.error("Failed to render ads",m),g();}).catch(m=>{throw console.error("Inserting an ad attempt error:",m),g(),m});});var Lt=e=>Promise.allSettled(e.map(t=>w(void 0,null,function*(){t.type==="remove-element"?t.element.remove():t.type==="hide-element"?t.element.style.setProperty("display","none","important"):yield nt(t);})));var Ie=(e,t,s=!1)=>{let r=document.createElement("div");r.style.width=`${e}px`,r.style.height=`${t}px`;let o=document.createElement("div");if(o.style.width=`${e}px`,o.style.height=`${t}px`,r.appendChild(o),s){let a=document.createElement("a");return a.href=h.SWAP_TKEY_URL,a.target="_blank",a.rel="noopener noreferrer",a.style.width=`${e}px`,a.style.height=`${t}px`,a.style.overflow="hidden",a.style.textOverflow="ellipsis",a.appendChild(document.createTextNode("TODO: Native TKEY ad")),o.appendChild(a),{element:r}}let l=document.createElement("a");l.href=h.SWAP_TKEY_URL,l.target="_blank",l.rel="noopener noreferrer",l.style.width="100%",l.style.height="100%",o.appendChild(l);let n=document.createElement("img");return n.src=e<=320?h.SMALL_TKEY_INPAGE_AD_URL:h.TKEY_INPAGE_AD_URL,n.style.width="100%",n.style.height="100%",l.appendChild(n),{element:r,creativeSet:{image:{url:n.src}}}};var Le=e=>{let{source:t,id:s,dimensions:r}=e,{width:o,height:l}=r,n=document.createElement("iframe");return n.id=s,n.src=Ht(e),n.style.width=t.native?"100%":`${o}px`,n.style.height=`${l}px`,n.style.border="none",n.allow=ue,{element:n}},Ct={height:"h",slug:"p",ps:"ps",id:"id",themeColor:"tc",fontSize:"fs",lineHeight:"lh",evmAccountAddress:"ea",chainName:"cn"},Ht=o=>{var l=o,{source:e,origin:t,dimensions:s}=l,r=I(l,["source","origin","dimensions"]);let{width:n,height:a}=s,{providerName:i,slug:d,native:g}=e,m=new URL(h.ADS_TW_WINDOW_URL),c=(p,A)=>{m.searchParams.set(p,String(A));};return c("ps",h.HYPELAB_PROPERTY_SLUG),c("ap",i.toLowerCase()),g?c("vh",a):c("w",n),Object.entries(v({height:a,slug:d},r)).forEach(([p,A])=>{(A||A===0)&&c(Ct[p],A);}),c("o",Dt(t)),m.toString()},Dt=e=>cryptoJs.AES.encrypt(e,h.TEMPLE_PASSPHRASE).toString();var Ne=class{constructor(g){this.wasReady=!1;this.rootElement=document.getElementById("root");this.validAdsCounter=0;var m=g,{id:t,initialAdsMetadata:s,origin:r,pageHasPlacesRules:o,adCategories:l,hypelabBlacklistedCampaignsSlugs:n,evmAccountAddress:a,chainName:i}=m,d=I(m,["id","initialAdsMetadata","origin","pageHasPlacesRules","adCategories","hypelabBlacklistedCampaignsSlugs","evmAccountAddress","chainName"]);this.id=t,this.origin=r,this.pageHasPlacesRules=o,this.adCategories=l,this.hypelabBlacklistedCampaignsSlugs=n,this.adThemeParams=d,this.evmAccountAddress=a,this.chainName=i,this.adsMetadata=s.map(c=>typeof c=="number"?h.bannerAdsMeta[c]:c),this.listenToExternalMessages();}startRendering(){if(this.adsMetadata.length===0){this.broadcastNoMoreAds();return}this.currentAdMetadata=h.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:s,creativeSet:r}=this.placeNewAd(t);s instanceof HTMLIFrameElement?this.listenToIframeMessages(s,t):this.handleValidAd({ad:{creative_set:r}});}listenToExternalMessages(){this.externalMessagesListener=t=>{var s,r;if(t.source===window.parent)try{let o=typeof t.data=="string"?JSON.parse(t.data):t.data;switch(o.type){case pe:{this.adThemeParams=v(v({},this.adThemeParams),o.params),this.iframeElement&&ge(this.iframeElement,()=>{var l,n;return (n=(l=this.iframeElement)==null?void 0:l.contentWindow)==null?void 0:n.postMessage(h.makeThemingParamsChangeMessage(this.adThemeParams),"*")}),(s=this.currentAdMetadata)!=null&&s.source.native&&(document.body.style.backgroundColor=(r=this.adThemeParams.themeColor)!=null?r:"transparent");break}case Ae:this.broadcastMessage({type:he});break}}catch(o){console.error("Message handling error:",o);}},window.addEventListener("message",this.externalMessagesListener);}listenToIframeMessages(t,s){let r=h.pickNextAdMetadata(this.adsMetadata,s,this.validAdsCounter,this.pageHasPlacesRules,this.adCategories);this.responseTimeout=setTimeout(()=>{console.error(`Timeout exceeded for ${this.id}, ad source: ${JSON.stringify(s.source)}`),this.handleInvalidAd();},(r?1e4:2e4)*(h.IS_MISES_BROWSER?2:1)),this.iframeMessagesListener=o=>{var l;if(o.source===t.contentWindow)try{let n=typeof o.data=="string"?JSON.parse(o.data):o.data;switch(n.type){case ne:if(s.source.providerName==="HypeLab"&&this.hypelabBlacklistedCampaignsSlugs.includes((l=n.ad)==null?void 0:l.campaign_slug)&&r){this.handleInvalidAd();break}this.handleValidAd(n);break;case oe:this.wasReady||this.handleInvalidAd();break;case me:let{width:a,height:i}=n;a>0&&i>0&&(s.source.native?t.style.height=`${i}px`:(F(t,"width",a),F(t,"height",i)),this.broadcastMessage(N(v({},n),{id:this.id})));break;case ie:this.broadcastMessage({id:this.id,type:ie});}}catch(n){console.error("Message handling error:",n);}},window.addEventListener("message",this.iframeMessagesListener);}handleInvalidAd(){this.removeMessageListeners(),this.clearResponseTimeout(),this.startRendering(),this.validAdsCounter=0;}removeMessageListeners(){this.iframeMessagesListener&&(window.removeEventListener("message",this.iframeMessagesListener),this.iframeMessagesListener=void 0),this.externalMessagesListener&&(window.removeEventListener("message",this.externalMessagesListener),this.externalMessagesListener=void 0);}placeNewAd(t){var a;document.body.style.backgroundColor=t.source.native?(a=this.adThemeParams.themeColor)!=null?a:"transparent":"#F2F2F2";let{source:s,dimensions:r}=t,o;switch(s.providerName){case"Temple":o=Ie(r.width,r.height,s.native);break;case"HypeLab":case"Bitmedia":o=Le(v({id:this.id,source:s,dimensions:r,origin:this.origin,evmAccountAddress:this.evmAccountAddress,chainName:this.chainName},this.adThemeParams));break;default:throw new Error(`Unsupported ad provider: ${s.providerName}`)}let{element:l}=o,n=document.getElementById("temple-label");return this.rootElement.replaceChildren(l),this.iframeElement=l instanceof HTMLIFrameElement?l:void 0,s.native?n.removeAttribute("active"):n.setAttribute("active",""),o}updateBackground(t,s={}){let r=document.getElementById(ve);if(t.native&&r&&this.rootElement.removeChild(r),!t.native){try{let{image:o,video:l}=s,n;if(o?(n=document.createElement("img"),n.src=o.url,n.alt=""):l&&(n=document.createElement("video"),n.src=l.url,n.autoplay=!0,n.preload="auto",n.playsInline=!0,n.muted=!0,n.loop=!0),!n&&r&&this.rootElement.removeChild(r),!n)return;n.id=ve,n.style.zIndex="-1",le(n,{position:"absolute",top:"0px",left:"0px",right:"0px",bottom:"0px",width:"100%",height:"100%","object-fit":"cover",filter:"blur(12px)"}),r?this.rootElement.replaceChild(n,r):this.rootElement.prepend(n);}catch(o){console.error(o);}document.body.style.backgroundColor="transparent";}}broadcastMessage(t){window.parent.postMessage(JSON.stringify(t),"*");}broadcastNoMoreAds(){this.broadcastMessage({id:this.id,type:oe,reason:"No more ads to render"});}clearResponseTimeout(){this.responseTimeout!==void 0&&(clearTimeout(this.responseTimeout),this.responseTimeout=void 0);}handleValidAd(t){var r;let s=this.currentAdMetadata;s&&(this.wasReady||(this.wasReady=!0,this.broadcastMessage({id:this.id,type:ne,adMetadata:s})),this.validAdsCounter++,this.clearResponseTimeout(),this.updateBackground(s.source,(r=t.ad)==null?void 0:r.creative_set));}},kt=e=>{try{new Ne(e).startRendering();}catch(t){console.error("Error while rendering ads stack:",t);}};var Ot=(e,t)=>{let{adPlacesRulesForAllDomains:s,providersRulesForAllDomains:r,providersSelectors:o,providersNegativeSelectors:l={},providersToReplaceAtAllSites:n,permanentAdPlacesRulesForAllDomains:a,permanentNativeAdPlacesRulesForAllDomains:i={},adsReplaceUrlsBlacklist:d=[],elementsToHideOrRemoveRules:g={},providersCategories:m={},blacklistedHypelabCampaignsSlugs:c=[],timestamp:p}=t,A=typeof e=="string"?e:e.href,{hostname:u}=new URL(A);if(d.some(T=>new RegExp(T).test(A)))return {adPlacesRules:[],permanentAdPlacesRules:[],providersSelectors:[],providersNegativeSelectors:[],elementsToHideOrRemoveRules:[],blacklistedHypelabCampaignsSlugs:c,timestamp:p};let E=A.replace(/#.*$/,""),R=T=>{let P=T.source.includes("#")?A:E;return T.test(P)};return {adPlacesRules:Wt(u,R,s),permanentAdPlacesRules:Ut(u,R,a,i),providersSelectors:at(u,R,r,o,n,m),providersNegativeSelectors:at(u,R,r,l,n,m),elementsToHideOrRemoveRules:Bt(u,R,g),blacklistedHypelabCampaignsSlugs:c,timestamp:p}},Bt=(e,t,s)=>{var r;return ((r=s[e])!=null?r:[]).map(n=>{var a=n,{urlRegexes:o}=a,l=I(a,["urlRegexes"]);return N(v({},l),{urlRegexes:o.map(i=>new RegExp(i))})}).filter(({urlRegexes:o})=>o.some(t))},Wt=(e,t,s)=>{var l;return ((l=s[e])!=null?l:[]).map(i=>{var d=i,{urlRegexes:n}=d,a=I(d,["urlRegexes"]);return N(v({},a),{urlRegexes:n.map(g=>new RegExp(g))})}).reduce((n,g)=>{var m=g,{urlRegexes:a,selector:i}=m,d=I(m,["urlRegexes","selector"]);if(!a.some(t))return n;let u=i,{cssString:c}=u,p=I(u,["cssString"]),A=n.findIndex(T=>{var P=T,{selector:E}=P,R=I(P,["selector"]);let f=E,b=I(f,["cssString"]);return lodash.isEqual(p,b)&&lodash.isEqual(d,R)});return A===-1?n.push(v({selector:i},d)):n[A].selector.cssString+=", ".concat(c),n},[])},ot=e=>l=>{var n=l,{urlRegexes:t,elementToMeasureSelector:s,elementsToMeasureSelectors:r}=n,o=I(n,["urlRegexes","elementToMeasureSelector","elementsToMeasureSelectors"]);return N(v({},o),{urlRegexes:t.map(a=>new RegExp(a)),isNative:e,elementsToMeasureSelectors:r!=null?r:s?{width:s,height:s}:void 0})},Ut=(e,t,s,r={})=>{var a,i;let o=(a=s[e])!=null?a:[],l=(i=r[e])!=null?i:[];return o.map(ot(!1)).concat(l.map(ot(!0))).filter(({urlRegexes:d})=>d.some(t))};function Yt(e){let t="";return e.forEach(s=>{t+=s+", ";}),t&&(t=t.slice(0,-2)),t}var at=(e,t,s,r,o,l)=>{var m;let a=((m=s[e])!=null?m:[]).map(A=>{var u=A,{urlRegexes:c}=u,p=I(u,["urlRegexes"]);return N(v({},p),{urlRegexes:c.map(E=>new RegExp(E))})}).filter(({urlRegexes:c})=>c.some(t)),i=new Set,d={},g=c=>{var u,E;if(i.has(c))return;let p=((u=l[c])!=null?u:[L]).join("|");((E=r[c])!=null?E:[]).forEach(R=>{let{selector:T,parentDepth:P}=typeof R=="string"?{selector:R,parentDepth:0}:R;d[p]||(d[p]={});let M=d[p];M[P]||(M[P]=new Set),M[P].add(T);}),i.add(c);};return o.forEach(g),a.forEach(({providers:c})=>c.forEach(g)),Object.entries(d).map(([c,p])=>Object.entries(p).map(([A,u])=>({parentDepth:Number(A),selector:Yt(u),categories:c.split("|")}))).flat()};var H=e=>(...t)=>w(void 0,null,function*(){let{data:s}=yield e(...t);return s}),Ce=class{constructor(t){this.getReplaceAdPlacesRulesForAllDomains=H(()=>this.api.get(this.getApiPath("/ad-places/replace",!1)));this.getProvidersToReplaceAtAllSites=H(()=>this.api.get(this.getApiPath("/providers/all-sites",!1)));this.getProvidersCategories=H(()=>this.api.get(this.getApiPath("/providers/categories",!1)));this.getProvidersRulesForAllDomains=H(()=>this.api.get(this.getApiPath("/providers/by-sites",!1)));this.getSelectorsForAllProviders=H(()=>this.api.get(this.getApiPath("/providers/selectors",!0)));this.getNegativeSelectorsForAllProviders=H(()=>this.api.get(this.getApiPath("/providers/negative-selectors",!1)));this.getPermanentAdPlacesRulesForAllDomains=H(()=>this.api.get(this.getApiPath("/ad-places/permanent",!1)));this.getPermanentNativeAdPlacesRulesForAllDomains=H(()=>this.api.get(this.getApiPath("/ad-places/permanent-native",!0)));this.getAdsReplaceUrlsBlacklist=H(()=>this.api.get(this.getApiPath("/replace-urls-blacklist",!1)));this.getElementsToHideOrRemoveRules=H(()=>this.api.get(this.getApiPath("/elements-to-hide-or-remove",!1)));this.getBlacklistedHypelabCampaignsSlugs=H(()=>this.api.get(this.getApiPath("/hypelab-campaigns-blacklist",!1)));this.getAllRules=()=>w(this,null,function*(){let[t,s,r,o,l,n,a,i,d,g,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:s,providersSelectors:r,providersToReplaceAtAllSites:o,permanentAdPlacesRulesForAllDomains:l,permanentNativeAdPlacesRulesForAllDomains:n,adsReplaceUrlsBlacklist:a,providersNegativeSelectors:i,elementsToHideOrRemoveRules:d,providersCategories:g,blacklistedHypelabCampaignsSlugs:m,timestamp:Date.now()}});this.api=Gt__default.default.create({baseURL:t,adapter:"fetch"});}getApiPath(t,s){return `/ads-rules/${h.EXTENSION_VERSION}${t}${s?h.IS_MISES_BROWSER?"/mises":"/no-mises":""}`}};
|
|
15
|
+
var At=Object.defineProperty,ht=Object.defineProperties;var ut=Object.getOwnPropertyDescriptors;var de=Object.getOwnPropertySymbols;var Ve=Object.prototype.hasOwnProperty,$e=Object.prototype.propertyIsEnumerable;var Fe=(e,t,s)=>t in e?At(e,t,{enumerable:!0,configurable:!0,writable:!0,value:s}):e[t]=s,v=(e,t)=>{for(var s in t||(t={}))Ve.call(t,s)&&Fe(e,s,t[s]);if(de)for(var s of de(t))$e.call(t,s)&&Fe(e,s,t[s]);return e},C=(e,t)=>ht(e,ut(t));var _=(e,t)=>{var s={};for(var r in e)Ve.call(e,r)&&t.indexOf(r)<0&&(s[r]=e[r]);if(e!=null&&de)for(var r of de(e))t.indexOf(r)<0&&$e.call(e,r)&&(s[r]=e[r]);return s};var b=(e,t,s)=>new Promise((r,o)=>{var a=l=>{try{i(s.next(l));}catch(d){o(d);}},n=l=>{try{i(s.throw(l));}catch(d){o(d);}},i=l=>l.done?r(l.value):Promise.resolve(l.value).then(a,n);i((s=s.apply(e,t)).next());});var z="twa",se="twa-native",re="twa-hidden",K="twa-sibling-replacement";var ce="adRenderStart",me="resize",ne="ready",ie="impression",oe="error",pe="adThemingParamsChange",Ae="ping",he="pong",ue="accelerometer; gyroscope",L="crypto",Te="background";process&&process.env&&process.env.NODE_ENV==="development";navigator.userAgent.includes("Macintosh");var ze=e=>!!e,gt=300,k=(e=gt)=>new Promise(t=>setTimeout(t,e)),ge=(e,t)=>{let s=()=>{var a;return (a=e.contentWindow)==null?void 0:a.postMessage(JSON.stringify({type:Ae}),"*")},r=a=>{if(a.source===e.contentWindow)try{let n=typeof a.data=="string"?JSON.parse(a.data):a.data;(n==null?void 0:n.type)===he&&(t(),window.removeEventListener("message",r),clearInterval(o));}catch(n){}};window.addEventListener("message",r),s();let o=setInterval(()=>s(),100);};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.makeThemingParamsChangeMessage=()=>"",A.bannerAdsMeta=[];var Et=e=>{let{hypelabPropertySlug:t,adsTwWindowUrl:s,tkeyInpageAdUrl:r,smallTkeyInpageAdUrl:o,swapTkeyUrl:a,externalAdsActivityMessageType:n,getAdsStackIframeURL:i,buildNativeAdsMeta:l,bannerAdsMeta:d,extVersion:h,templePassphrase:g,isMisesBrowser:c,pickNextAdMetadata:m,evmAccountAddress:u,chainName:p,makeThemingParamsChangeMessage:f}=e;o&&(A.SMALL_TKEY_INPAGE_AD_URL=o),A.HYPELAB_PROPERTY_SLUG=t,A.ADS_TW_WINDOW_URL=s,A.TKEY_INPAGE_AD_URL=r,A.SWAP_TKEY_URL=a,A.EXTERNAL_ADS_ACTIVITY_MESSAGE_TYPE=n,A.getAdsStackIframeURL=i,A.buildNativeAdsMeta=l,A.pickNextAdMetadata=m,A.bannerAdsMeta=d,A.EXTENSION_VERSION=h,A.TEMPLE_PASSPHRASE=g,A.IS_MISES_BROWSER=c,A.evmAccountAddress=u,A.chainName=p,A.makeThemingParamsChangeMessage=f;};var X=/[\d.]+(px)?$/,j=`[${z}]`,Ke=`[${z}]:not([${se}])`,Xe=`[${se}]`,Q=(e,t)=>{let s=parseInt(e,10);return isNaN(s)||!X.test(e)?t:s},F=(e,t,s)=>{e.style[t]=`${Math.max(Q(e.style[t],0),s)}px`;},q=e=>e.reduce((t,s)=>t+Q(s,0),0),J=e=>!!e.closest(j),Ee=e=>{var t;return !!((t=e.previousElementSibling)!=null&&t.getAttribute(K))},ae=e=>{let t=getComputedStyle(e),{x:s,right:r,width:o,height:a}=e.getBoundingClientRect(),n={width:o,height:a},i=["width","height"];for(let l of i){let d=t[l],h=e.getAttribute(l),g=Math.max(...[d,h].map(c=>Q(c!=null?c:"",-1)));g!==-1&&(n[l]=g),l==="width"&&s<0?n.width+=s:l==="width"&&r>window.innerWidth&&(n.width=window.innerWidth-s);}return n},D=(e,t,s=document)=>e?t?[...s.querySelectorAll(e)]:[s.querySelector(e)].filter(r=>!!r):[],B=(e,t)=>{let s=e;for(let r=0;r<t;r++){let o=s.parentElement;if(!o)return null;s=o;}return s},je=(e,t,s,r,o)=>{if(e<2&&t<2)return [];if(r)return A.buildNativeAdsMeta(e,t);let a=s==="permanent"||s==="slot-replacement"?A.bannerAdsMeta.filter(({source:l})=>l.shouldNotUseStrictContainerLimits):[],n=Math.max(e,...a.map(({dimensions:l})=>l.width)),i=Math.max(t,...a.map(({dimensions:l})=>l.height));return A.bannerAdsMeta.reduce((l,{dimensions:d,source:h},g)=>{let{shouldNotUseStrictContainerLimits:c=!1,categories:m=[L],providerName:u}=h;if(m.every(w=>!o.includes(w))||l.some(w=>A.bannerAdsMeta[w].source.providerName===u))return l;let{minContainerWidth:p,minContainerHeight:f,width:R,maxContainerWidth:T,maxContainerHeight:S}=d,P=!1;switch(s){case"permanent":P=c||n>=R&&(i>=f||i<2);break;case"slot-replacement":P=c||n>=p&&(i>=f||i<2);break;default:P=e>=p&&t>=f&&e<=T&&t<=S;}return P&&l.push(g),l},[])},ft=e=>{let{x:t,y:s,width:r,height:o}=e.getBoundingClientRect();return t!==0||s!==0||r!==0||o!==0},Me=e=>{let{display:t}=window.getComputedStyle(e);switch(t){case"none":return !0;case"contents":return Array.from(e.children).every(s=>Me(s));default:return !ft(e)}};var Qe=(e,t)=>{let{shouldHide:s,cssString:r,parentDepth:o,isMultiple:a}=e;D(r,a).forEach(n=>{let i=B(n,o);if(!i)return;let l=window.getComputedStyle(i);l.display!=="none"&&l.visibility!=="hidden"&&t.push({type:s?"hide-element":"remove-element",element:i});});};var qe=(e,t,s)=>b(void 0,null,function*(){let{parentSelector:r,displayWidth:o}=e,{isMultiple:a,cssString:n,parentDepth:i}=r;if(o&&!semver.satisfies(semver.coerce(window.innerWidth),o))return [];let l=D(n,a).map(d=>B(d,i)).filter(d=>!!d);return yield Promise.all(l.map(d=>b(void 0,null,function*(){yield k(0),St(d,e,t,s);}))),l}),we=(e,t)=>{var s,r;return e?{width:(s=document.querySelector(e.width))!=null?s:t,height:(r=document.querySelector(e.height))!=null?r:t}:{width:t,height:t}},St=(e,t,s,r)=>{var We;let Be=t,{shouldUseDivWrapper:o,divWrapperStyle:a,wrapperStyle:n,elementStyle:i,adSelector:l,insertionIndex:d,insertBeforeSelector:h,insertAfterSelector:g,insertionsCount:c=1,elementsToMeasureSelectors:m,stylesOverrides:u,shouldHideOriginal:p=!1,isNative:f,urlRegexes:R,parentSelector:T,supportsTheming:S,enableForNonMises:P,fontSampleSelector:w,displayWidth:I}=Be,E=_(Be,["shouldUseDivWrapper","divWrapperStyle","wrapperStyle","elementStyle","adSelector","insertionIndex","insertBeforeSelector","insertAfterSelector","insertionsCount","elementsToMeasureSelectors","stylesOverrides","shouldHideOriginal","isNative","urlRegexes","parentSelector","supportsTheming","enableForNonMises","fontSampleSelector","displayWidth"]),x=E.wrapperType?n:o?a:{display:"contents"},{isMultiple:M,cssString:N,parentDepth:V}=l,H=D(f?Xe:Ke,!0,e).reduce((y,W)=>y.some($=>$.contains(W))?y:[...y.filter($=>!W.contains($)),W],[]),U=H.filter(y=>Me(y)&&!y.hasAttribute(re)),Y=H.length-U.length,G=c-Y;if(D(N,M,e).map(y=>B(y,V)).filter(y=>ze(y)&&!J(y)).forEach(y=>{var $;let W=window.getComputedStyle(y).display==="none";if(G<=0)(!p||!W)&&r.push({type:p?"hide-element":"remove-element",element:y});else {let ct=we(m,(($=y.parentElement)==null?void 0:$.children.length)===1?y.parentElement:y),Ue=v({fontSampleSelector:S?w:void 0,supportsTheming:S,wrapperStyle:x,elementStyle:i,stylesOverrides:u},E),mt=v({type:"replace-element",element:y,adCategories:[L]},Ue),Ye={type:"hide-element",element:y},pt=v({type:"simple-insert-ad",parent:y.parentElement,insertionIndex:Array.from(y.parentElement.children).indexOf(y),isSiblingReplacement:!0,adCategories:[L]},Ue),te=[],Ge=Ee(y);p&&Ge&&!W?te=[Ye]:p&&!Ge?te=[Ye,pt]:p||(te=[mt]),te.length>0&&s(ct,"permanent",f,[L],...te)&&G--;}}),G<=0)return;let ee=-1,Oe=e,ve={width:e,height:e},ke=h||g;if(ke){let y=e.querySelector(ke),W=y==null?void 0:y.parentElement;y&&W&&(Oe=W,ee=Array.from(e.children).indexOf(y)+(h?0:1),ve=we(m,y));}else {let y=d!=null?d:0;ee=y<0?Math.max(e.children.length+y,0):Math.min(y,e.children.length),ve=we(m,(We=e.children[ee])!=null?We:e);}if(ee!==-1){let y=v({type:"simple-insert-ad",wrapperStyle:x,elementStyle:i,parent:Oe,insertionIndex:ee,isSiblingReplacement:!1,stylesOverrides:u,adCategories:[L]},E);s(ve,"permanent",f,[L],...Array(G).fill(y));}};var Tt=["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"],Pt=lodash.memoize(e=>e.reduce((t,{dimensions:s})=>{let r=t.filter(({width:o,height:a})=>o<s.width||a<s.height);return (r.length===0||r.some(({width:o,height:a})=>o>s.width||a>s.height))&&r.push(s),r},[])),Je=(e,t,s,r)=>b(void 0,null,function*(){let o=Pt(A.bannerAdsMeta),a=e.map(({selector:i,parentDepth:l,categories:d})=>D(i,!0).reduce((h,g)=>{var I;let c=(I=B(g,l))!=null?I:g,m=h.findIndex(({element:E})=>E.contains(c)),u=c.parentElement&&window.getComputedStyle(c.parentElement),{width:p,height:f}=ae(c),R=r.some(E=>{var x;return E.type==="replace-all-children"||E.type==="simple-insert-ad"?E.parent.contains(c)||c.contains(E.parent):((x=E.element.parentElement)==null?void 0:x.contains(c))||c.contains(E.element)}),T=(u==null?void 0:u.display)==="none"||(u==null?void 0:u.visibility)==="hidden",S=m>=0&&h[m]instanceof HTMLAnchorElement,P=o.some(({width:E,height:x})=>p>=E&&f>=x);if(R||!P||T||S)return h;let w={element:c,categories:d};return m>=0?h.splice(m,1,w):h.some(({element:E})=>E.contains(c))||h.push(w),h},[])).flat(),n=t.map(({selector:i,parentDepth:l})=>D(i,!0).map(d=>B(d,l)).filter(d=>!!d)).flat();a=a.filter(({element:i})=>!n.includes(i)),yield Promise.all(a.map(d=>b(void 0,[d],function*({element:i,categories:l}){var u,p,f,R,T,S,P,w;yield k(0);let h=i.parentElement,{width:g,height:c}=window.getComputedStyle(i),m=X.test(g)&&X.test(c)?i:(p=(u=h==null?void 0:h.closest("div, article, aside, footer, header"))!=null?u:(h==null?void 0:h.tagName.toLowerCase())==="body"?void 0:h)!=null?p:i;if(!J(i)&&!i.querySelector(j)&&!r.some(I=>I.type==="simple-insert-ad"?!1:I.type==="replace-all-children"?I.parent.contains(i):I.element===i)){let I=(f=i.getAttribute("style"))!=null?f:"",E=Object.fromEntries(I.split(";").filter(Boolean).map(Y=>Y.split(":").map(G=>G.trim())));if((R=E.width)!=null&&R.match(/^0[a-z]/)||(T=E.height)!=null&&T.match(/^0[a-z]/))return;let x=window.getComputedStyle(i),M=v(v({},Object.fromEntries(Tt.map(Y=>[Y,x.getPropertyValue(Y)]))),E);M.display==="none"&&delete M.display;let N={type:"hide-element",element:i},V={type:"simple-insert-ad",wrapperStyle:M,parent:(S=i.parentElement)!=null?S:document.body,insertionIndex:Array.from((w=(P=i.parentElement)==null?void 0:P.children)!=null?w:[]).indexOf(i),isSiblingReplacement:!0,shouldUseBlurredBackground:!0,adCategories:l},H,U=i.closest(`[${K}] + *`);U&&U!==i?H=[{type:"remove-element",element:U.previousElementSibling},N,V]:U?H=window.getComputedStyle(i).display==="none"?[]:[N]:H=[N,V],s({width:m,height:m},"provider-replacement",!1,l,...H);}})));});var Ze=(e,t,s)=>b(void 0,null,function*(){let{cssString:r,isMultiple:o}=e.selector,a=D(r,o);yield Promise.all(a.map(n=>b(void 0,null,function*(){yield k(0),Mt(n,e,t,s);})));}),Mt=(e,t,s,r)=>{let{selector:{shouldUseDivWrapper:o,parentDepth:a,divWrapperStyle:n,elementStyle:i},stylesOverrides:l,shouldHideOriginal:d,isNative:h=!1,supportsTheming:g=!1,fontSampleSelector:c}=t,m=B(e,a);if(!m||s.some(f=>f.contains(m))||J(m)||m.querySelector(j))return;let u={shouldUseDivWrapper:o,wrapperStyle:n,elementStyle:i,supportsTheming:g,fontSampleSelector:c},p;if(o&&d){let f=m.parentElement,R=window.getComputedStyle(m).display==="none",T=v({type:"simple-insert-ad",parent:f,insertionIndex:Array.from(f.children).indexOf(m),stylesOverrides:l==null?void 0:l.map(w=>{var I=w,{parentDepth:S}=I,P=_(I,["parentDepth"]);return C(v({},P),{parentDepth:S-1})}),isSiblingReplacement:!0,adCategories:[L]},u);p=[],R||p.push({type:"hide-element",element:m}),Ee(m)||p.push(T);}else if(o)p=[v({type:"replace-element",element:m,stylesOverrides:l==null?void 0:l.map(S=>{var P=S,{parentDepth:R}=P,T=_(P,["parentDepth"]);return C(v({},T),{parentDepth:R-1})}),adCategories:[L]},u)];else if(d){let f={type:"simple-insert-ad",parent:m,insertionIndex:0,stylesOverrides:l,isSiblingReplacement:!0,adCategories:[L],wrapperStyle:{display:"contents"}};p=Array.from(m.children).filter(R=>window.getComputedStyle(R).display!=="none").map(R=>({type:"hide-element",element:R})),m.querySelector(j)||p.push(f);}else p=[{type:"replace-all-children",parent:m,stylesOverrides:l,adCategories:[L],wrapperStyle:{display:"contents"}}];p.length>0&&r({width:m,height:m},"slot-replacement",h,[L],...p);};var wt=a=>b(void 0,[a],function*({providersSelectors:e,providersNegativeSelectors:t,adPlacesRules:s,permanentAdPlacesRules:r,elementsToHideOrRemoveRules:o}){let n=[],i=(d,h,g,c,...m)=>{if(m.length>0&&m.every(M=>M.type==="hide-element"||M.type==="remove-element"))return n.push(...m),!0;let{width:u}=ae(d.width),{height:p}=ae(d.height),{paddingLeft:f,paddingRight:R}=window.getComputedStyle(d.width),{paddingTop:T,paddingBottom:S}=window.getComputedStyle(d.height),P=q([f,R]),w=P===u?u:u-P,I=q([T,S]),E=I===p?p:p-I,x=je(w,E,h,g,c);return x.length?(n.push(...m.map(M=>M.type==="hide-element"||M.type==="remove-element"?M:C(v({},M),{adsMetadata:x,originalWidth:w,originalHeight:E}))),!0):!1},l=[];return yield Promise.all(o.map(d=>b(void 0,null,function*(){yield k(0),Qe(d,n);}))),yield Promise.all(r.map(d=>b(void 0,null,function*(){yield k(0),l=l.concat(yield qe(d,i,n));}))),yield Promise.all(s.map(d=>b(void 0,null,function*(){yield k(0),yield Ze(d,l,i);}))),yield Je(e,t,i,n),n});var fe=class e{constructor(){this.data=new WeakMap,this.get=this.get.bind(this),this.onChildAdded=this.onChildAdded.bind(this),this.beforeChildRemoved=this.beforeChildRemoved.bind(this);}get(t){var s;return (s=this.data.get(t))!=null?s:[]}onChildAdded(t){let s=t.parentElement,r=this.data.get(s);r||(r=[],this.data.set(s,r)),r.push({type:"add",index:e.getIndex(t)});}beforeChildRemoved(t){let s=t.parentElement,r=this.data.get(s);r||(r=[],this.data.set(s,r)),r.push({type:"remove",index:e.getIndex(t)});}static getIndex(t){return Array.from(t.parentElement.children).indexOf(t)}};var be=(r=>(r.HypeLab="HypeLab",r.Temple="Temple Wallet",r.Bitmedia="Bitmedia",r))(be||{});var xe=new Set,et=new Set,rt=e=>b(void 0,null,function*(){let t=e.id;if(xe.has(t))return;xe.add(t);let s=!1;return new Promise((r,o)=>{let a=!1,n,i=l=>{var d,h;if(l.source===e.contentWindow)try{let g=typeof l.data=="string"?JSON.parse(l.data):l.data;if(g.id!==t)return;let c=e.offsetWidth-e.clientWidth,m=e.offsetHeight-e.clientHeight;switch(g.type){case ne:s=tt(e),n=g.adMetadata.source.providerName,r();break;case oe:window.removeEventListener("message",i),e.style.display="none",o(new Error((d=g.reason)!=null?d:"Unknown error"));break;case ce:let{dimensions:u,source:p}=g.adMetadata;a=(h=p.native)!=null?h:!1;let{width:f,height:R}=u;f>0&&R>0&&(p.native?e.style.height=`${R}px`:(F(e,"width",f),F(e,"height",R)));break;case me:let{width:T,height:S}=g;a?e.style.height=`${S+m}px`:(F(e,"width",T+c),F(e,"height",S+m));break;case ie:n&&s&&xt(n);break}}catch(g){console.error("Observing error:",g);}};window.addEventListener("message",i);}).then(()=>{if(et.has(t))return;et.add(t),s=tt(e),new IntersectionObserver(o=>{s=o.some(a=>a.isIntersecting);},{threshold:.5}).observe(e);}).catch(r=>{throw console.error(r),r}).finally(()=>void xe.delete(t))}),xt=e=>{let t=window.parent.location.href;bt__default.default.runtime.sendMessage({type:A.EXTERNAL_ADS_ACTIVITY_MESSAGE_TYPE,url:t,provider:be[e]}).catch(s=>void console.error(s));},tt=e=>{let t=e.getBoundingClientRect(),s=window.visualViewport;if(!s)return !1;let r=Math.min(Math.max(0,t.x),s.width),o=Math.min(Math.max(0,t.x+t.width),s.width),a=Math.min(Math.max(0,t.y),s.height),n=Math.min(Math.max(0,t.y+t.height),s.height),i=t.width*t.height;return (o-r)*(n-a)/i>=.5},Ie=class{constructor(){this.callbacks=[],this.observer=new MutationObserver(t=>{this.callbacks.forEach(s=>s(t,this.observer));});}hasNoCallbacks(){return this.callbacks.length===0}addCallback(t){this.callbacks.push(t);}removeCallback(t){this.callbacks=this.callbacks.filter(s=>s!==t);}observe(t,s){this.observer.observe(t,s);}disconnect(){this.observer.disconnect();}},Re=new WeakMap,ye=(e,t,s)=>{let r=Re.get(e);r||(r=new Ie,Re.set(e,r),r.observe(e,t)),r.addCallback(s);},Se=(e,t)=>{let s=Re.get(e);s&&(s.removeCallback(t),s.hasNoCallbacks()&&(s.disconnect(),Re.delete(e)));};var le=(e,t)=>{for(let s in t)e.style.setProperty(s,t[s]);};var It=e=>{if(e.toLowerCase()==="transparent"||/^#[0-9A-F]{6}00$/i.exec(e)||/^#[0-9A-F]{3}0$/i.exec(e))return !0;let t=String.raw`(?:0+\.?0*|\.0+)%?`;return !!(new RegExp(String.raw`^(?:rgb|hsl|hwb)a?\s*\([^,)]+,[^,)]+,[^,)]+,\s*${t}\s*\)$`,"i").exec(e)||new RegExp(String.raw`^(?:rgb|hsl|hwb|lab|lch|oklch|oklab)a?\s*\([^/)]+\/\s*${t}\s*\)$`,"i").exec(e)||new RegExp(String.raw`^color\s*\([^/)]+\/\s*${t}\s*\)$`,"i").exec(e))},_e=(e,t)=>{if(!e)return {};let{backgroundColor:s}=window.getComputedStyle(document.body),{backgroundColor:r}=window.getComputedStyle(document.documentElement),o=It(s)?r:s,a=t?document.querySelector(t):null;if(!a)return {themeColor:o};let{fontSize:n,lineHeight:i}=window.getComputedStyle(a),l=n?Q(n,0):void 0,d=i?Q(i,0):void 0;return {fontSize:l===0?void 0:l,lineHeight:d===0?void 0:d,themeColor:o}};var Lt=(e,t)=>{["width","height"].forEach(r=>{var a;let o=(a=e.style[r])!=null?a:"";X.test(o)&&parseInt(o,10)<t[r]&&e.style.removeProperty(r);});},it=e=>{let{adsMetadata:t,originalHeight:s,originalWidth:r,shouldUseBlurredBackground:o}=e,a=t[0],{dimensions:n}=typeof a=="number"?A.bannerAdsMeta[a]:a;return {width:o?Math.max(r,n.width):n.width,height:o?Math.max(s,n.height):n.height}},Ct=(e,t,s,r,o,a)=>b(void 0,null,function*(){let{elementStyle:n={},stylesOverrides:i=[],adsMetadata:l,wrapperType:d,adCategories:h,supportsTheming:g,fontSampleSelector:c}=e;i.sort((E,x)=>E.parentDepth-x.parentDepth);let m,u=nanoid.nanoid(),p=document.createElement("iframe");p.loading="lazy",p.src=A.getAdsStackIframeURL(C(v({id:u,adsMetadataIds:l,origin:window.location.href,adCategories:h},_e(g,c)),{evmAccountAddress:A.evmAccountAddress,chainName:A.chainName})),p.id=u,p.allow=ue;let f=it(e);p.style.width=d==="tbody"?"100%":`${f.width}px`,p.style.height=`${f.height}px`,p.style.border="none";for(let E in n)p.style.setProperty(E,n[E]);p.setAttribute(z,"true"),r.appendChild(p);let R="parent"in e?e.parent:e.element.parentElement;switch(e.type){case"replace-all-children":m=e.parent;for(let M of e.parent.children)t.beforeChildRemoved(M);e.parent.innerHTML="",e.parent.appendChild(s),t.onChildAdded(s);break;case"replace-element":m=e.element.parentElement,e.element.replaceWith(s);break;default:let E=e.insertionIndex;t.get(e.parent).forEach(M=>{M.index>=E||(M.type==="remove"?E--:E++);});let x=e.parent.children[E];if(e.isSiblingReplacement){s.setAttribute(K,"true");let M=new MutationObserver(N=>{N.some(H=>Array.from(H.removedNodes).includes(x))&&(t.beforeChildRemoved(s),s.remove(),M.disconnect());});M.observe(e.parent,{childList:!0});}m=e.parent,e.parent.insertBefore(s,x),t.onChildAdded(s);break}if(d!=="tbody"){let{borderLeftWidth:E,borderRightWidth:x,borderTopWidth:M,borderBottomWidth:N}=window.getComputedStyle(p),{borderLeftWidth:V,borderRightWidth:H,borderTopWidth:U,borderBottomWidth:Y}=window.getComputedStyle(s),G=q([E,x,V,H]),De=q([M,N,U,Y]);n.width||(p.style.width=`${f.width-G}px`),n.height||(p.style.height=`${f.height-De}px`);}let T=c?document.querySelector(c):null,S=()=>{try{ge(p,()=>{var E;(E=p.contentWindow)==null||E.postMessage(JSON.stringify({type:pe,params:_e(g,c)}),"*");});}catch(E){Se(document.documentElement,S),Se(document.body,S),R&&Se(R,P),w==null||w.disconnect();}},P=E=>{E.some(x=>{let M=Array.from(x.addedNodes);return M.includes(p)||M.some(N=>N.contains(p))})&&S();};g&&(ye(document.documentElement,{attributes:!0},S),ye(document.body,{attributes:!0},S),R&&ye(R,{childList:!0,subtree:!0},P));let w=null;T&&(w=new ResizeObserver(S),w.observe(T)),rt(p).then(o).catch(a);let I=0;i.forEach(({parentDepth:E,style:x})=>{for(;E>I&&m;)m=m.parentElement,I++;m&&le(m,x);});}),nt={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"},ot=(e,t)=>b(void 0,null,function*(){let{wrapperStyle:s={},adsMetadata:r,wrapperType:o="div",colsAfter:a=0,colsBefore:n=0,colspan:i=1}=e,l=r.every(c=>typeof c=="object"),d,h;if(o==="div")d=document.createElement("div"),h=d;else {d=document.createElement("tbody");let c=document.createElement("tr");d.appendChild(c);for(let u=0;u<n;u++)c.appendChild(document.createElement("td"));let m=document.createElement("td");m.colSpan=i,c.appendChild(m),h=m;for(let u=0;u<a;u++)c.appendChild(document.createElement("td"));}d.setAttribute(z,"true"),d.setAttribute(re,"true"),l&&d.setAttribute(se,"true"),le(d,v(v({},s),nt));let g=()=>{for(let c of h.children)h.removeChild(c);};yield Ct(e,t,d,h,()=>{for(let c in nt)s[c]?d.style.setProperty(c,s[c]):d.style.removeProperty(c);Lt(d,it(e)),d.removeAttribute(re);},c=>{console.error("Failed to render ads",c),g();}).catch(c=>{throw console.error("Inserting an ad attempt error:",c),g(),c});});var Nt=e=>{let t=new fe;return Promise.allSettled(e.map(s=>b(void 0,null,function*(){s.type==="remove-element"?(t.beforeChildRemoved(s.element),s.element.remove()):s.type==="hide-element"?s.element.style.setProperty("display","none","important"):yield ot(s,t);})))};var Le=(e,t,s=!1)=>{let r=document.createElement("div");r.style.width=`${e}px`,r.style.height=`${t}px`;let o=document.createElement("div");if(o.style.width=`${e}px`,o.style.height=`${t}px`,r.appendChild(o),s){let i=document.createElement("a");return i.href=A.SWAP_TKEY_URL,i.target="_blank",i.rel="noopener noreferrer",i.style.width=`${e}px`,i.style.height=`${t}px`,i.style.overflow="hidden",i.style.textOverflow="ellipsis",i.appendChild(document.createTextNode("TODO: Native TKEY ad")),o.appendChild(i),{element:r}}let a=document.createElement("a");a.href=A.SWAP_TKEY_URL,a.target="_blank",a.rel="noopener noreferrer",a.style.width="100%",a.style.height="100%",o.appendChild(a);let n=document.createElement("img");return n.src=e<=320?A.SMALL_TKEY_INPAGE_AD_URL:A.TKEY_INPAGE_AD_URL,n.style.width="100%",n.style.height="100%",a.appendChild(n),{element:r,creativeSet:{image:{url:n.src}}}};var Ce=e=>{let{source:t,id:s,dimensions:r}=e,{width:o,height:a}=r,n=document.createElement("iframe");return n.id=s,n.src=Ot(e),n.style.width=t.native?"100%":`${o}px`,n.style.height=`${a}px`,n.style.border="none",n.allow=ue,{element:n}},Dt={height:"h",slug:"p",ps:"ps",id:"id",themeColor:"tc",fontSize:"fs",lineHeight:"lh",evmAccountAddress:"ea",chainName:"cn"},Ot=o=>{var a=o,{source:e,origin:t,dimensions:s}=a,r=_(a,["source","origin","dimensions"]);let{width:n,height:i}=s,{providerName:l,slug:d,native:h}=e,g=new URL(A.ADS_TW_WINDOW_URL),c=(m,u)=>{g.searchParams.set(m,String(u));};return c("ps",A.HYPELAB_PROPERTY_SLUG),c("ap",l.toLowerCase()),h?c("vh",i):c("w",n),Object.entries(v({height:i,slug:d},r)).forEach(([m,u])=>{(u||u===0)&&c(Dt[m],u);}),c("o",kt(t)),g.toString()},kt=e=>cryptoJs.AES.encrypt(e,A.TEMPLE_PASSPHRASE).toString();var Ne=class{constructor(h){this.wasReady=!1;this.rootElement=document.getElementById("root");this.validAdsCounter=0;var g=h,{id:t,initialAdsMetadata:s,origin:r,pageHasPlacesRules:o,adCategories:a,hypelabBlacklistedCampaignsSlugs:n,evmAccountAddress:i,chainName:l}=g,d=_(g,["id","initialAdsMetadata","origin","pageHasPlacesRules","adCategories","hypelabBlacklistedCampaignsSlugs","evmAccountAddress","chainName"]);this.id=t,this.origin=r,this.pageHasPlacesRules=o,this.adCategories=a,this.hypelabBlacklistedCampaignsSlugs=n,this.adThemeParams=d,this.evmAccountAddress=i,this.chainName=l,this.adsMetadata=s.map(c=>typeof c=="number"?A.bannerAdsMeta[c]:c),this.listenToExternalMessages();}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:s,creativeSet:r}=this.placeNewAd(t);s instanceof HTMLIFrameElement?this.listenToIframeMessages(s,t):this.handleValidAd({ad:{creative_set:r}});}listenToExternalMessages(){this.externalMessagesListener=t=>{var s,r;if(t.source===window.parent)try{let o=typeof t.data=="string"?JSON.parse(t.data):t.data;switch(o.type){case pe:{this.adThemeParams=v(v({},this.adThemeParams),o.params),this.iframeElement&&ge(this.iframeElement,()=>{var a,n;return (n=(a=this.iframeElement)==null?void 0:a.contentWindow)==null?void 0:n.postMessage(A.makeThemingParamsChangeMessage(this.adThemeParams),"*")}),(s=this.currentAdMetadata)!=null&&s.source.native&&(document.body.style.backgroundColor=(r=this.adThemeParams.themeColor)!=null?r:"transparent");break}case Ae:this.broadcastMessage({type:he});break}}catch(o){console.error("Message handling error:",o);}},window.addEventListener("message",this.externalMessagesListener);}listenToIframeMessages(t,s){let r=A.pickNextAdMetadata(this.adsMetadata,s,this.validAdsCounter,this.pageHasPlacesRules,this.adCategories);this.responseTimeout=setTimeout(()=>{console.error(`Timeout exceeded for ${this.id}, ad source: ${JSON.stringify(s.source)}`),this.handleInvalidAd();},(r?1e4:2e4)*(A.IS_MISES_BROWSER?2:1)),this.iframeMessagesListener=o=>{var a;if(o.source===t.contentWindow)try{let n=typeof o.data=="string"?JSON.parse(o.data):o.data;switch(n.type){case ne:if(s.source.providerName==="HypeLab"&&this.hypelabBlacklistedCampaignsSlugs.includes((a=n.ad)==null?void 0:a.campaign_slug)&&r){this.handleInvalidAd();break}this.handleValidAd(n);break;case oe:this.wasReady||this.handleInvalidAd();break;case me:let{width:i,height:l}=n;i>0&&l>0&&(s.source.native?t.style.height=`${l}px`:(F(t,"width",i),F(t,"height",l)),this.broadcastMessage(C(v({},n),{id:this.id})));break;case ie:this.broadcastMessage({id:this.id,type:ie});}}catch(n){console.error("Message handling error:",n);}},window.addEventListener("message",this.iframeMessagesListener);}handleInvalidAd(){this.removeMessageListeners(),this.clearResponseTimeout(),this.startRendering(),this.validAdsCounter=0;}removeMessageListeners(){this.iframeMessagesListener&&(window.removeEventListener("message",this.iframeMessagesListener),this.iframeMessagesListener=void 0),this.externalMessagesListener&&(window.removeEventListener("message",this.externalMessagesListener),this.externalMessagesListener=void 0);}placeNewAd(t){var i;document.body.style.backgroundColor=t.source.native?(i=this.adThemeParams.themeColor)!=null?i:"transparent":"#F2F2F2";let{source:s,dimensions:r}=t,o;switch(s.providerName){case"Temple":o=Le(r.width,r.height,s.native);break;case"HypeLab":case"Bitmedia":o=Ce(v({id:this.id,source:s,dimensions:r,origin:this.origin,evmAccountAddress:this.evmAccountAddress,chainName:this.chainName},this.adThemeParams));break;default:throw new Error(`Unsupported ad provider: ${s.providerName}`)}let{element:a}=o,n=document.getElementById("temple-label");return this.rootElement.replaceChildren(a),this.iframeElement=a instanceof HTMLIFrameElement?a:void 0,s.native?n.removeAttribute("active"):n.setAttribute("active",""),o}updateBackground(t,s={}){let r=document.getElementById(Te);if(t.native&&r&&this.rootElement.removeChild(r),!t.native){try{let{image:o,video:a}=s,n;if(o?(n=document.createElement("img"),n.src=o.url,n.alt=""):a&&(n=document.createElement("video"),n.src=a.url,n.autoplay=!0,n.preload="auto",n.playsInline=!0,n.muted=!0,n.loop=!0),!n&&r&&this.rootElement.removeChild(r),!n)return;n.id=Te,n.style.zIndex="-1",le(n,{position:"absolute",top:"0px",left:"0px",right:"0px",bottom:"0px",width:"100%",height:"100%","object-fit":"cover",filter:"blur(12px)"}),r?this.rootElement.replaceChild(n,r):this.rootElement.prepend(n);}catch(o){console.error(o);}document.body.style.backgroundColor="transparent";}}broadcastMessage(t){window.parent.postMessage(JSON.stringify(t),"*");}broadcastNoMoreAds(){this.broadcastMessage({id:this.id,type:oe,reason:"No more ads to render"});}clearResponseTimeout(){this.responseTimeout!==void 0&&(clearTimeout(this.responseTimeout),this.responseTimeout=void 0);}handleValidAd(t){var r;let s=this.currentAdMetadata;s&&(this.wasReady||(this.wasReady=!0,this.broadcastMessage({id:this.id,type:ne,adMetadata:s})),this.validAdsCounter++,this.clearResponseTimeout(),this.updateBackground(s.source,(r=t.ad)==null?void 0:r.creative_set));}},Bt=e=>{try{new Ne(e).startRendering();}catch(t){console.error("Error while rendering ads stack:",t);}};var Wt=(e,t)=>{let{adPlacesRulesForAllDomains:s,providersRulesForAllDomains:r,providersSelectors:o,providersNegativeSelectors:a={},providersToReplaceAtAllSites:n,permanentAdPlacesRulesForAllDomains:i,permanentNativeAdPlacesRulesForAllDomains:l={},adsReplaceUrlsBlacklist:d=[],elementsToHideOrRemoveRules:h={},providersCategories:g={},blacklistedHypelabCampaignsSlugs:c=[],timestamp:m}=t,u=typeof e=="string"?e:e.href,{hostname:p}=new URL(u);if(d.some(T=>new RegExp(T).test(u)))return {adPlacesRules:[],permanentAdPlacesRules:[],providersSelectors:[],providersNegativeSelectors:[],elementsToHideOrRemoveRules:[],blacklistedHypelabCampaignsSlugs:c,timestamp:m};let f=u.replace(/#.*$/,""),R=T=>{let S=T.source.includes("#")?u:f;return T.test(S)};return {adPlacesRules:Yt(p,R,s),permanentAdPlacesRules:Gt(p,R,i,l),providersSelectors:dt(p,R,r,o,n,g),providersNegativeSelectors:dt(p,R,r,a,n,g),elementsToHideOrRemoveRules:Ut(p,R,h),blacklistedHypelabCampaignsSlugs:c,timestamp:m}},Ut=(e,t,s)=>{var r;return ((r=s[e])!=null?r:[]).map(n=>{var i=n,{urlRegexes:o}=i,a=_(i,["urlRegexes"]);return C(v({},a),{urlRegexes:o.map(l=>new RegExp(l))})}).filter(({urlRegexes:o})=>o.some(t))},Yt=(e,t,s)=>{var a;return ((a=s[e])!=null?a:[]).map(l=>{var d=l,{urlRegexes:n}=d,i=_(d,["urlRegexes"]);return C(v({},i),{urlRegexes:n.map(h=>new RegExp(h))})}).reduce((n,h)=>{var g=h,{urlRegexes:i,selector:l}=g,d=_(g,["urlRegexes","selector"]);if(!i.some(t))return n;let p=l,{cssString:c}=p,m=_(p,["cssString"]),u=n.findIndex(T=>{var S=T,{selector:f}=S,R=_(S,["selector"]);let I=f,w=_(I,["cssString"]);return lodash.isEqual(m,w)&&lodash.isEqual(d,R)&&m.isMultiple&&w.isMultiple});return u===-1?n.push(v({selector:l},d)):n[u].selector.cssString+=", ".concat(c),n},[])},lt=e=>a=>{var n=a,{urlRegexes:t,elementToMeasureSelector:s,elementsToMeasureSelectors:r}=n,o=_(n,["urlRegexes","elementToMeasureSelector","elementsToMeasureSelectors"]);return C(v({},o),{urlRegexes:t.map(i=>new RegExp(i)),isNative:e,elementsToMeasureSelectors:r!=null?r:s?{width:s,height:s}:void 0})},Gt=(e,t,s,r={})=>{var i,l;let o=(i=s[e])!=null?i:[],a=(l=r[e])!=null?l:[];return o.map(lt(!1)).concat(a.map(lt(!0))).filter(({urlRegexes:d})=>d.some(t))};function Ft(e){let t="";return e.forEach(s=>{t+=s+", ";}),t&&(t=t.slice(0,-2)),t}var dt=(e,t,s,r,o,a)=>{var g;let i=((g=s[e])!=null?g:[]).map(u=>{var p=u,{urlRegexes:c}=p,m=_(p,["urlRegexes"]);return C(v({},m),{urlRegexes:c.map(f=>new RegExp(f))})}).filter(({urlRegexes:c})=>c.some(t)),l=new Set,d={},h=c=>{var p,f;if(l.has(c))return;let m=((p=a[c])!=null?p:[L]).join("|");((f=r[c])!=null?f:[]).forEach(R=>{let{selector:T,parentDepth:S}=typeof R=="string"?{selector:R,parentDepth:0}:R;d[m]||(d[m]={});let P=d[m];P[S]||(P[S]=new Set),P[S].add(T);}),l.add(c);};return o.forEach(h),i.forEach(({providers:c})=>c.forEach(h)),Object.entries(d).map(([c,m])=>Object.entries(m).map(([u,p])=>({parentDepth:Number(u),selector:Ft(p),categories:c.split("|")}))).flat()};var O=e=>(...t)=>b(void 0,null,function*(){let{data:s}=yield e(...t);return s}),He=class{constructor(t){this.getReplaceAdPlacesRulesForAllDomains=O(()=>this.api.get(this.getApiPath("/ad-places/replace",!1)));this.getProvidersToReplaceAtAllSites=O(()=>this.api.get(this.getApiPath("/providers/all-sites",!1)));this.getProvidersCategories=O(()=>this.api.get(this.getApiPath("/providers/categories",!1)));this.getProvidersRulesForAllDomains=O(()=>this.api.get(this.getApiPath("/providers/by-sites",!1)));this.getSelectorsForAllProviders=O(()=>this.api.get(this.getApiPath("/providers/selectors",!0)));this.getNegativeSelectorsForAllProviders=O(()=>this.api.get(this.getApiPath("/providers/negative-selectors",!1)));this.getPermanentAdPlacesRulesForAllDomains=O(()=>this.api.get(this.getApiPath("/ad-places/permanent",!1)));this.getPermanentNativeAdPlacesRulesForAllDomains=O(()=>this.api.get(this.getApiPath("/ad-places/permanent-native",!0)));this.getAdsReplaceUrlsBlacklist=O(()=>this.api.get(this.getApiPath("/replace-urls-blacklist",!1)));this.getElementsToHideOrRemoveRules=O(()=>this.api.get(this.getApiPath("/elements-to-hide-or-remove",!1)));this.getBlacklistedHypelabCampaignsSlugs=O(()=>this.api.get(this.getApiPath("/hypelab-campaigns-blacklist",!1)));this.getAllRules=()=>b(this,null,function*(){let[t,s,r,o,a,n,i,l,d,h,g]=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:s,providersSelectors:r,providersToReplaceAtAllSites:o,permanentAdPlacesRulesForAllDomains:a,permanentNativeAdPlacesRulesForAllDomains:n,adsReplaceUrlsBlacklist:i,providersNegativeSelectors:l,elementsToHideOrRemoveRules:d,providersCategories:h,blacklistedHypelabCampaignsSlugs:g,timestamp:Date.now()}});this.api=Vt__default.default.create({baseURL:t,adapter:"fetch"});}getApiPath(t,s){return `/ads-rules/${A.EXTENSION_VERSION}${t}${s?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 = He;
|
|
18
|
+
exports.configureAds = Et;
|
|
19
|
+
exports.executeAdsActions = Nt;
|
|
20
|
+
exports.getAdsActions = wt;
|
|
21
|
+
exports.renderAdsStack = Bt;
|
|
22
|
+
exports.transformRawRules = Wt;
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAYA,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAE9C,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAEnD,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAE1D,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAEpD,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAE1D,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAYA,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAE9C,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAEnD,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAE1D,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAEpD,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAE1D,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAEhD,cAAc,0BAA0B,CAAC;AAEzC,cAAc,4BAA4B,CAAC;AAE3C,cAAc,2BAA2B,CAAC"}
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import { ReferralTextIconRule } from './utils';
|
|
2
2
|
export interface AdsBrowserExtensionMessageTypeI {
|
|
3
|
-
FetchTakeAdsReferrals: string;
|
|
4
3
|
ReferralClick: string;
|
|
5
4
|
}
|
|
6
5
|
export declare const getItemsToReplace: (supportedDomains?: Set<string>) => {
|
|
@@ -15,5 +14,5 @@ interface PreppedItem {
|
|
|
15
14
|
referralUrl: string;
|
|
16
15
|
imageUrl?: string | null;
|
|
17
16
|
}
|
|
18
|
-
export declare function processAnchorElement(item: PreppedItem, textIconRules: ReferralTextIconRule[], AdsBrowserExtensionMessageType: AdsBrowserExtensionMessageTypeI, provider: '
|
|
17
|
+
export declare function processAnchorElement(item: PreppedItem, textIconRules: ReferralTextIconRule[], AdsBrowserExtensionMessageType: AdsBrowserExtensionMessageTypeI, provider: 'Temple', redirectUrl?: string): void;
|
|
19
18
|
export {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"common.js","sourceRoot":"","sources":["../../src/referrals/common.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,uBAAuB,CAAC;AAE5C,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAExD,OAAO,EAAE,oBAAoB,EAAwB,cAAc,EAAE,MAAM,SAAS,CAAC;AAErF,MAAM,8BAA8B,GAAG,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"common.js","sourceRoot":"","sources":["../../src/referrals/common.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/referrals/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/referrals/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AAExD,OAAO,EAAE,oBAAoB,EAAE,MAAM,SAAS,CAAC"}
|
package/dist/temple-ads-api.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { RawAllAdsRules, RawAdPlacesRule, RawAdProvidersRule, RawPermanentAdPlacesRule } from 'src/types/temple-ads-api';
|
|
1
|
+
import { RawAllAdsRules, RawAdPlacesRule, RawAdProvidersRule, RawPermanentAdPlacesRule, YoutubePageAnalysisRequest, YoutubePageAnalysisResponse } from 'src/types/temple-ads-api';
|
|
2
2
|
export declare class TempleAdsApi {
|
|
3
3
|
private api;
|
|
4
4
|
constructor(baseURL: string);
|
|
@@ -21,4 +21,5 @@ export declare class TempleAdsApi {
|
|
|
21
21
|
getElementsToHideOrRemoveRules: () => Promise<Record<string, import("src/types/temple-ads-api").RawElementsToHideOrRemoveEntry[]>>;
|
|
22
22
|
getBlacklistedHypelabCampaignsSlugs: () => Promise<string[]>;
|
|
23
23
|
getAllRules: () => Promise<RawAllAdsRules>;
|
|
24
|
+
analyzeYoutubePage: (request: YoutubePageAnalysisRequest) => Promise<YoutubePageAnalysisResponse>;
|
|
24
25
|
}
|
package/dist/temple-ads-api.js
CHANGED
|
@@ -55,6 +55,10 @@ export class TempleAdsApi {
|
|
|
55
55
|
timestamp: Date.now()
|
|
56
56
|
};
|
|
57
57
|
});
|
|
58
|
+
this.analyzeYoutubePage = (request) => __awaiter(this, void 0, void 0, function* () {
|
|
59
|
+
const { data } = yield this.api.post('/page-analysis', request);
|
|
60
|
+
return data;
|
|
61
|
+
});
|
|
58
62
|
this.api = axios.create({ baseURL, adapter: 'fetch' });
|
|
59
63
|
}
|
|
60
64
|
getApiPath(pathMainPart, isMisesVariable) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"temple-ads-api.js","sourceRoot":"","sources":["../src/temple-ads-api.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,KAAuC,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"temple-ads-api.js","sourceRoot":"","sources":["../src/temple-ads-api.ts"],"names":[],"mappings":"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"}
|
|
@@ -6,7 +6,9 @@ export declare enum AdActionType {
|
|
|
6
6
|
ReplaceElement = "replace-element",
|
|
7
7
|
SimpleInsertAd = "simple-insert-ad",
|
|
8
8
|
RemoveElement = "remove-element",
|
|
9
|
-
HideElement = "hide-element"
|
|
9
|
+
HideElement = "hide-element",
|
|
10
|
+
MoveElement = "move-element",
|
|
11
|
+
MutateElement = "mutate-element"
|
|
10
12
|
}
|
|
11
13
|
export declare enum AdType {
|
|
12
14
|
Permanent = "permanent",
|
|
@@ -29,6 +31,7 @@ interface InsertAdActionProps extends Pick<RawPermanentAdPlacesRule, 'wrapperSty
|
|
|
29
31
|
adCategories: string[];
|
|
30
32
|
supportsTheming?: boolean;
|
|
31
33
|
fontSampleSelector?: string;
|
|
34
|
+
showAdBeforeLoaded?: boolean;
|
|
32
35
|
}
|
|
33
36
|
export interface ReplaceAllChildrenWithAdAction extends AdActionBase, InsertAdActionProps {
|
|
34
37
|
type: AdActionType.ReplaceAllChildren;
|
|
@@ -38,12 +41,23 @@ export interface ReplaceElementWithAdAction extends AdActionBase, InsertAdAction
|
|
|
38
41
|
type: AdActionType.ReplaceElement;
|
|
39
42
|
element: HTMLElement;
|
|
40
43
|
}
|
|
41
|
-
|
|
44
|
+
interface SimpleInsertAdActionBase extends AdActionBase, InsertAdActionProps {
|
|
42
45
|
type: AdActionType.SimpleInsertAd;
|
|
46
|
+
parent: HTMLElement | undefined;
|
|
47
|
+
insertionIndex?: number;
|
|
48
|
+
prevSibling?: HTMLElement;
|
|
49
|
+
isSiblingReplacement: boolean;
|
|
50
|
+
}
|
|
51
|
+
interface SimpleInsertAdActionByIndex extends SimpleInsertAdActionBase {
|
|
43
52
|
parent: HTMLElement;
|
|
44
53
|
insertionIndex: number;
|
|
45
|
-
|
|
54
|
+
prevSibling?: undefined;
|
|
46
55
|
}
|
|
56
|
+
interface SimpleInsertAdActionByPrevSibling extends SimpleInsertAdActionBase {
|
|
57
|
+
insertionIndex?: undefined;
|
|
58
|
+
prevSibling: HTMLElement;
|
|
59
|
+
}
|
|
60
|
+
export type SimpleInsertAdAction = SimpleInsertAdActionByIndex | SimpleInsertAdActionByPrevSibling;
|
|
47
61
|
export interface RemoveElementAction extends AdActionBase {
|
|
48
62
|
type: AdActionType.RemoveElement;
|
|
49
63
|
element: HTMLElement;
|
|
@@ -52,9 +66,21 @@ export interface HideElementAction extends AdActionBase {
|
|
|
52
66
|
type: AdActionType.HideElement;
|
|
53
67
|
element: HTMLElement;
|
|
54
68
|
}
|
|
69
|
+
export interface MoveElementAction extends AdActionBase {
|
|
70
|
+
type: AdActionType.MoveElement;
|
|
71
|
+
element: HTMLElement;
|
|
72
|
+
parent: HTMLElement;
|
|
73
|
+
/** Reference node passed to `parent.insertBefore`. `null` or omitted → appends at end. */
|
|
74
|
+
insertBeforeElement?: HTMLElement | null;
|
|
75
|
+
}
|
|
76
|
+
export interface MutateElementAction extends AdActionBase {
|
|
77
|
+
type: AdActionType.MutateElement;
|
|
78
|
+
element: HTMLElement;
|
|
79
|
+
mutate: (element: HTMLElement) => void | Promise<void>;
|
|
80
|
+
}
|
|
55
81
|
export type InsertAdAction = ReplaceAllChildrenWithAdAction | ReplaceElementWithAdAction | SimpleInsertAdAction;
|
|
56
82
|
export type OmitAdInAction<T extends InsertAdActionProps> = Omit<T, 'adsMetadata' | 'originalWidth' | 'originalHeight'>;
|
|
57
83
|
export type InsertAdActionWithoutMeta = OmitAdInAction<ReplaceAllChildrenWithAdAction> | OmitAdInAction<ReplaceElementWithAdAction> | OmitAdInAction<SimpleInsertAdAction>;
|
|
58
|
-
export type AdAction = InsertAdAction | RemoveElementAction | HideElementAction;
|
|
84
|
+
export type AdAction = InsertAdAction | RemoveElementAction | HideElementAction | MoveElementAction | MutateElementAction;
|
|
59
85
|
export type AddActionsIfAdResolutionAvailable = (elementsToMeasure: Record<'width' | 'height', HTMLElement>, adType: AdType, adIsNative: boolean, expectedCategories: string[], ...actionsBases: (InsertAdActionWithoutMeta | HideElementAction | RemoveElementAction)[]) => boolean;
|
|
60
86
|
export {};
|
|
@@ -5,6 +5,8 @@ export var AdActionType;
|
|
|
5
5
|
AdActionType["SimpleInsertAd"] = "simple-insert-ad";
|
|
6
6
|
AdActionType["RemoveElement"] = "remove-element";
|
|
7
7
|
AdActionType["HideElement"] = "hide-element";
|
|
8
|
+
AdActionType["MoveElement"] = "move-element";
|
|
9
|
+
AdActionType["MutateElement"] = "mutate-element";
|
|
8
10
|
})(AdActionType || (AdActionType = {}));
|
|
9
11
|
export var AdType;
|
|
10
12
|
(function (AdType) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ads-actions.js","sourceRoot":"","sources":["../../src/types/ads-actions.ts"],"names":[],"mappings":"AAKA,MAAM,CAAN,IAAY,
|
|
1
|
+
{"version":3,"file":"ads-actions.js","sourceRoot":"","sources":["../../src/types/ads-actions.ts"],"names":[],"mappings":"AAKA,MAAM,CAAN,IAAY,YAQX;AARD,WAAY,YAAY;IACtB,2DAA2C,CAAA;IAC3C,kDAAkC,CAAA;IAClC,mDAAmC,CAAA;IACnC,gDAAgC,CAAA;IAChC,4CAA4B,CAAA;IAC5B,4CAA4B,CAAA;IAC5B,gDAAgC,CAAA;AAClC,CAAC,EARW,YAAY,KAAZ,YAAY,QAQvB;AAED,MAAM,CAAN,IAAY,MAIX;AAJD,WAAY,MAAM;IAChB,iCAAuB,CAAA;IACvB,8CAAoC,CAAA;IACpC,sDAA4C,CAAA;AAC9C,CAAC,EAJW,MAAM,KAAN,MAAM,QAIjB"}
|
|
@@ -83,4 +83,40 @@ export interface RawAllAdsRules {
|
|
|
83
83
|
blacklistedHypelabCampaignsSlugs: string[];
|
|
84
84
|
timestamp: number;
|
|
85
85
|
}
|
|
86
|
+
interface YoutubePageAnalysisRequestBase {
|
|
87
|
+
hostname: string;
|
|
88
|
+
pageType: 'search-results' | 'video';
|
|
89
|
+
}
|
|
90
|
+
export interface YoutubeSearchResultsPageAnalysisRequest extends YoutubePageAnalysisRequestBase {
|
|
91
|
+
pageType: 'search-results';
|
|
92
|
+
query: string;
|
|
93
|
+
results: (YoutubeVideo | YoutubeChannel)[];
|
|
94
|
+
}
|
|
95
|
+
export interface YoutubeVideo {
|
|
96
|
+
title: string;
|
|
97
|
+
channelName: string;
|
|
98
|
+
channelId: string;
|
|
99
|
+
description: string;
|
|
100
|
+
}
|
|
101
|
+
export interface YoutubeChannel {
|
|
102
|
+
name: string;
|
|
103
|
+
id: string;
|
|
104
|
+
description: string;
|
|
105
|
+
}
|
|
106
|
+
export interface YoutubeVideoPageAnalysisRequest extends YoutubePageAnalysisRequestBase {
|
|
107
|
+
pageType: 'video';
|
|
108
|
+
title: string;
|
|
109
|
+
description: string;
|
|
110
|
+
channelName: string;
|
|
111
|
+
channelId: string;
|
|
112
|
+
hashtags: string[];
|
|
113
|
+
}
|
|
114
|
+
export type YoutubePageAnalysisRequest = YoutubeSearchResultsPageAnalysisRequest | YoutubeVideoPageAnalysisRequest;
|
|
115
|
+
export interface YoutubePageAnalysisResponse {
|
|
116
|
+
reasoning: string;
|
|
117
|
+
isCryptoRelated: boolean;
|
|
118
|
+
confidence: number;
|
|
119
|
+
}
|
|
120
|
+
export type AnalyzeYoutubeSearchPage = (params: Omit<YoutubeSearchResultsPageAnalysisRequest, 'pageType' | 'hostname'>) => Promise<YoutubePageAnalysisResponse>;
|
|
121
|
+
export type AnalyzeYoutubeVideoPage = (params: Omit<YoutubeVideoPageAnalysisRequest, 'pageType' | 'hostname'>) => Promise<YoutubePageAnalysisResponse>;
|
|
86
122
|
export {};
|
package/package.json
CHANGED
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
interface ChildrenAddOrRemoveChange {
|
|
2
|
+
type: 'add' | 'remove';
|
|
3
|
+
index: number;
|
|
4
|
+
}
|
|
5
|
+
|
|
6
|
+
export class ChildrenAddOrRemoveChanges {
|
|
7
|
+
private readonly data: WeakMap<Element, ChildrenAddOrRemoveChange[]>;
|
|
8
|
+
|
|
9
|
+
constructor() {
|
|
10
|
+
this.data = new WeakMap();
|
|
11
|
+
this.get = this.get.bind(this);
|
|
12
|
+
this.onChildAdded = this.onChildAdded.bind(this);
|
|
13
|
+
this.beforeChildRemoved = this.beforeChildRemoved.bind(this);
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
get(parent: Element) {
|
|
17
|
+
return this.data.get(parent) ?? [];
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
onChildAdded(element: Element) {
|
|
21
|
+
const parent = element.parentElement!;
|
|
22
|
+
let changes = this.data.get(parent);
|
|
23
|
+
if (!changes) {
|
|
24
|
+
changes = [];
|
|
25
|
+
this.data.set(parent, changes);
|
|
26
|
+
}
|
|
27
|
+
changes.push({ type: 'add', index: ChildrenAddOrRemoveChanges.getIndex(element) });
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
beforeChildRemoved(element: Element) {
|
|
31
|
+
const parent = element.parentElement!;
|
|
32
|
+
let changes = this.data.get(parent);
|
|
33
|
+
if (!changes) {
|
|
34
|
+
changes = [];
|
|
35
|
+
this.data.set(parent, changes);
|
|
36
|
+
}
|
|
37
|
+
changes.push({ type: 'remove', index: ChildrenAddOrRemoveChanges.getIndex(element) });
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
static getIndex(element: Element) {
|
|
41
|
+
return Array.from(element.parentElement!.children).indexOf(element);
|
|
42
|
+
}
|
|
43
|
+
}
|
|
@@ -1,16 +1,21 @@
|
|
|
1
1
|
import { AdAction, AdActionType } from 'src/types/ads-actions';
|
|
2
2
|
|
|
3
|
+
import { ChildrenAddOrRemoveChanges } from './children-add-or-remove-changes';
|
|
3
4
|
import { processInsertAdAction } from './process-insert-ad-action';
|
|
4
5
|
|
|
5
|
-
export const executeAdsActions = (adsActions: AdAction[]) =>
|
|
6
|
-
|
|
6
|
+
export const executeAdsActions = (adsActions: AdAction[]) => {
|
|
7
|
+
const childrenAddOrRemoveChanges = new ChildrenAddOrRemoveChanges();
|
|
8
|
+
|
|
9
|
+
return Promise.allSettled(
|
|
7
10
|
adsActions.map(async action => {
|
|
8
11
|
if (action.type === AdActionType.RemoveElement) {
|
|
12
|
+
childrenAddOrRemoveChanges.beforeChildRemoved(action.element);
|
|
9
13
|
action.element.remove();
|
|
10
14
|
} else if (action.type === AdActionType.HideElement) {
|
|
11
15
|
action.element.style.setProperty('display', 'none', 'important');
|
|
12
16
|
} else {
|
|
13
|
-
await processInsertAdAction(action);
|
|
17
|
+
await processInsertAdAction(action, childrenAddOrRemoveChanges);
|
|
14
18
|
}
|
|
15
19
|
})
|
|
16
20
|
);
|
|
21
|
+
};
|
|
@@ -14,6 +14,7 @@ import { AdActionType, InsertAdAction } from 'src/types/ads-actions';
|
|
|
14
14
|
import { AdDimensions } from 'src/types/ads-meta';
|
|
15
15
|
import { doAfterSuccessfulPing } from 'src/utils';
|
|
16
16
|
|
|
17
|
+
import { ChildrenAddOrRemoveChanges } from './children-add-or-remove-changes';
|
|
17
18
|
import { observeNodeMutations, subscribeToAdsStackIframeLoadIfNecessary, unobserveNodeMutations } from './observing';
|
|
18
19
|
import { overrideElementStyles } from './override-element-styles';
|
|
19
20
|
import { getAdThemingParams } from './theming-params';
|
|
@@ -46,6 +47,7 @@ const getWrapperDimensions = (action: InsertAdAction) => {
|
|
|
46
47
|
|
|
47
48
|
const processInsertAdActionOnce = async (
|
|
48
49
|
action: InsertAdAction,
|
|
50
|
+
childrenAddOrRemoveChanges: ChildrenAddOrRemoveChanges,
|
|
49
51
|
wrapperElement: HTMLDivElement,
|
|
50
52
|
insertionPoint: HTMLDivElement | HTMLTableCellElement,
|
|
51
53
|
onAdsStackLoad: () => void,
|
|
@@ -94,15 +96,31 @@ const processInsertAdActionOnce = async (
|
|
|
94
96
|
switch (action.type) {
|
|
95
97
|
case AdActionType.ReplaceAllChildren:
|
|
96
98
|
stylesOverridesCurrentElement = action.parent;
|
|
99
|
+
for (const child of action.parent.children) {
|
|
100
|
+
childrenAddOrRemoveChanges.beforeChildRemoved(child);
|
|
101
|
+
}
|
|
97
102
|
action.parent.innerHTML = '';
|
|
98
103
|
action.parent.appendChild(wrapperElement);
|
|
104
|
+
childrenAddOrRemoveChanges.onChildAdded(wrapperElement);
|
|
99
105
|
break;
|
|
100
106
|
case AdActionType.ReplaceElement:
|
|
101
107
|
stylesOverridesCurrentElement = action.element.parentElement;
|
|
102
108
|
action.element.replaceWith(wrapperElement);
|
|
103
109
|
break;
|
|
104
110
|
default:
|
|
105
|
-
|
|
111
|
+
let insertionIndex = action.insertionIndex;
|
|
112
|
+
childrenAddOrRemoveChanges.get(action.parent).forEach(change => {
|
|
113
|
+
if (change.index >= insertionIndex) {
|
|
114
|
+
return;
|
|
115
|
+
}
|
|
116
|
+
|
|
117
|
+
if (change.type === 'remove') {
|
|
118
|
+
insertionIndex--;
|
|
119
|
+
} else {
|
|
120
|
+
insertionIndex++;
|
|
121
|
+
}
|
|
122
|
+
});
|
|
123
|
+
const nextSibling = action.parent.children[insertionIndex];
|
|
106
124
|
if (action.isSiblingReplacement) {
|
|
107
125
|
wrapperElement.setAttribute(SIBLING_REPLACEMENT_ATTRIBUTE_NAME, 'true');
|
|
108
126
|
const observer = new MutationObserver(mutations => {
|
|
@@ -111,6 +129,7 @@ const processInsertAdActionOnce = async (
|
|
|
111
129
|
);
|
|
112
130
|
|
|
113
131
|
if (hasRemoveSiblingMutation) {
|
|
132
|
+
childrenAddOrRemoveChanges.beforeChildRemoved(wrapperElement);
|
|
114
133
|
wrapperElement.remove();
|
|
115
134
|
observer.disconnect();
|
|
116
135
|
}
|
|
@@ -119,6 +138,7 @@ const processInsertAdActionOnce = async (
|
|
|
119
138
|
}
|
|
120
139
|
stylesOverridesCurrentElement = action.parent;
|
|
121
140
|
action.parent.insertBefore(wrapperElement, nextSibling);
|
|
141
|
+
childrenAddOrRemoveChanges.onChildAdded(wrapperElement);
|
|
122
142
|
break;
|
|
123
143
|
}
|
|
124
144
|
|
|
@@ -234,7 +254,10 @@ const hidingStylesOverrides = {
|
|
|
234
254
|
'min-width': '0px'
|
|
235
255
|
};
|
|
236
256
|
|
|
237
|
-
export const processInsertAdAction = async (
|
|
257
|
+
export const processInsertAdAction = async (
|
|
258
|
+
action: InsertAdAction,
|
|
259
|
+
childrenAddOrRemoveChanges: ChildrenAddOrRemoveChanges
|
|
260
|
+
) => {
|
|
238
261
|
const { wrapperStyle = {}, adsMetadata, wrapperType = 'div', colsAfter = 0, colsBefore = 0, colspan = 1 } = action;
|
|
239
262
|
const isNativeAd = adsMetadata.every(adMetadata => typeof adMetadata === 'object');
|
|
240
263
|
|
|
@@ -274,6 +297,7 @@ export const processInsertAdAction = async (action: InsertAdAction) => {
|
|
|
274
297
|
|
|
275
298
|
await processInsertAdActionOnce(
|
|
276
299
|
action,
|
|
300
|
+
childrenAddOrRemoveChanges,
|
|
277
301
|
wrapperElement,
|
|
278
302
|
insertionPoint,
|
|
279
303
|
() => {
|
|
@@ -107,7 +107,12 @@ const buildAdPlacesRules = (
|
|
|
107
107
|
const ruleToComplementIndex = acc.findIndex(({ selector: candidateSelector, ...candidateRestProps }) => {
|
|
108
108
|
const { cssString: _candidateCssString, ...restCandidateSelectorProps } = candidateSelector;
|
|
109
109
|
|
|
110
|
-
return
|
|
110
|
+
return (
|
|
111
|
+
isEqual(restSelectorProps, restCandidateSelectorProps) &&
|
|
112
|
+
isEqual(restProps, candidateRestProps) &&
|
|
113
|
+
restSelectorProps.isMultiple &&
|
|
114
|
+
restCandidateSelectorProps.isMultiple
|
|
115
|
+
);
|
|
111
116
|
});
|
|
112
117
|
if (ruleToComplementIndex === -1) {
|
|
113
118
|
acc.push({ selector, ...restProps });
|