@temple-wallet/extension-ads 1.0.1 → 2.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.d.ts +6 -4
- package/dist/index.js +1 -1
- package/package.json +2 -2
- package/src/ads-configuration.ts +12 -13
package/dist/index.d.ts
CHANGED
|
@@ -166,10 +166,12 @@ interface AdsRules {
|
|
|
166
166
|
declare const getAdsActions: ({ providersSelector, adPlacesRules, permanentAdPlacesRules }: AdsRules) => Promise<AdAction[]>;
|
|
167
167
|
|
|
168
168
|
interface IAdsConfiguration {
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
169
|
+
hypelab: {
|
|
170
|
+
regular: string;
|
|
171
|
+
small: string;
|
|
172
|
+
wide: string;
|
|
173
|
+
native: string;
|
|
174
|
+
};
|
|
173
175
|
hypelabAdsWindowUrl: string;
|
|
174
176
|
tkeyInpageAdUrl: string;
|
|
175
177
|
swapTkeyUrl: string;
|
package/dist/index.js
CHANGED
|
@@ -12,7 +12,7 @@ var Ce__default = /*#__PURE__*/_interopDefault(Ce);
|
|
|
12
12
|
var Ge__default = /*#__PURE__*/_interopDefault(Ge);
|
|
13
13
|
var $e__default = /*#__PURE__*/_interopDefault($e);
|
|
14
14
|
|
|
15
|
-
var xe=Object.defineProperty,Te=Object.defineProperties;var we=Object.getOwnPropertyDescriptors;var U=Object.getOwnPropertySymbols;var se=Object.prototype.hasOwnProperty,ie=Object.prototype.propertyIsEnumerable;var re=(e,t,n)=>t in e?xe(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,y=(e,t)=>{for(var n in t||(t={}))se.call(t,n)&&re(e,n,t[n]);if(U)for(var n of U(t))ie.call(t,n)&&re(e,n,t[n]);return e},S=(e,t)=>Te(e,we(t));var g=(e,t)=>{var n={};for(var i in e)se.call(e,i)&&t.indexOf(i)<0&&(n[i]=e[i]);if(e!=null&&U)for(var i of U(e))t.indexOf(i)<0&&ie.call(e,i)&&(n[i]=e[i]);return n};var f=(e,t,n)=>new Promise((i,r)=>{var s=d=>{try{o(n.next(d));}catch(l){r(l);}},a=d=>{try{o(n.throw(d));}catch(l){r(l);}},o=d=>d.done?i(d.value):Promise.resolve(d.value).then(s,a);o((n=n.apply(e,t)).next());});var oe=e=>!!e;var I=(e=300)=>new Promise(t=>setTimeout(t,e));var h=class{};h.HYPELAB_NATIVE_PLACEMENT_SLUG="",h.HYPELAB_SMALL_PLACEMENT_SLUG="",h.HYPELAB_HIGH_PLACEMENT_SLUG="",h.HYPELAB_WIDE_PLACEMENT_SLUG="",h.HYPELAB_ADS_WINDOW_URL="",h.TKEY_INPAGE_AD_URL="",h.SWAP_TKEY_URL="",h.EXTERNAL_ADS_ACTIVITY_MESSAGE_TYPE="";var ve=e=>{let{hypelabNativePlacementSlug:t,hypelabSmallPlacementSlug:n,hypelabHighPlacementSlug:i,hypelabWidePlacementSlug:r,hypelabAdsWindowUrl:s,tkeyInpageAdUrl:a,swapTkeyUrl:o,externalAdsActivityMessageType:d}=e;h.HYPELAB_NATIVE_PLACEMENT_SLUG=t,h.HYPELAB_SMALL_PLACEMENT_SLUG=n,h.HYPELAB_HIGH_PLACEMENT_SLUG=i,h.HYPELAB_WIDE_PLACEMENT_SLUG=r,h.HYPELAB_ADS_WINDOW_URL=s,h.TKEY_INPAGE_AD_URL=a,h.SWAP_TKEY_URL=o,h.EXTERNAL_ADS_ACTIVITY_MESSAGE_TYPE=d;};var ae=[{source:{providerName:"Persona",shape:"wide"},dimensions:{width:970,height:90,minContainerWidth:600,minContainerHeight:60,maxContainerWidth:1440,maxContainerHeight:110}},{source:{providerName:"Temple"},dimensions:{width:728,height:90,minContainerWidth:600,minContainerHeight:60,maxContainerWidth:1440,maxContainerHeight:110}},{source:{providerName:"HypeLab",native:!1,size:"high"},dimensions:{width:300,height:250,minContainerWidth:210,minContainerHeight:170,maxContainerWidth:400,maxContainerHeight:300}},{source:{providerName:"Persona",shape:"squarish"},dimensions:{width:300,height:250,minContainerWidth:210,minContainerHeight:170,maxContainerWidth:400,maxContainerHeight:300}},{source:{providerName:"HypeLab",native:!1,size:"small",shouldNotUseStrictContainerLimits:!0},dimensions:{width:320,height:50,minContainerWidth:230,minContainerHeight:32,maxContainerWidth:420,maxContainerHeight:110}},{source:{providerName:"Persona",shape:"regular",shouldNotUseStrictContainerLimits:!0},dimensions:{width:321,height:101,minContainerWidth:230,minContainerHeight:32,maxContainerWidth:420,maxContainerHeight:110}}],le=(e,t)=>({source:{providerName:"HypeLab",native:!0,slug:h.HYPELAB_NATIVE_PLACEMENT_SLUG},dimensions:{width:Math.max(160,e),height:Math.max(16,t),minContainerWidth:2,minContainerHeight:2,maxContainerWidth:1/0,maxContainerHeight:1/0}});var v="twa";var M=`iframe[${v}], div[${v}]`,W=e=>{let t=e.tagName.toLowerCase();return (t==="iframe"||t==="div")&&e.hasAttribute(v)},de=e=>{let t=getComputedStyle(e),n={width:0,height:0},i=["width","height"];for(let r of i){let s=t[r],o=e.getAttribute(r)||s;if(/\d+px/.test(o))n[r]=Number(o.replace("px",""));else {let{width:d,height:l}=e.getBoundingClientRect();n[r]=r==="width"?d:l;}}return n},L=(e,t,n=document)=>e?t?[...n.querySelectorAll(e)]:[n.querySelector(e)].filter(i=>!!i):[],B=(e,t)=>{let n=e;for(let i=0;i<t;i++){let r=n.parentElement;if(!r)return null;n=r;}return n},ce=(e,t,n,i,r)=>e<2&&t<2?[]:r?[le(e,t)]:ae.filter(({source:s,dimensions:a})=>{let{minContainerWidth:o,maxContainerWidth:d,minContainerHeight:l,maxContainerHeight:u,width:m}=a,c=i?m:o;return !((n||!s.shouldNotUseStrictContainerLimits)&&(e<c||t<l&&t>=2)||n&&(e>d||t>u))});var me=(e,t,n)=>f(void 0,null,function*(){let{isMultiple:i,cssString:r,parentDepth:s}=e.parentSelector,a=L(r,i).map(o=>B(o,s)).filter(o=>!!o);return yield Promise.all(a.map(o=>f(void 0,null,function*(){yield I(0),Le(o,e,t,n);}))),a}),Le=(e,t,n,i)=>{var ee;let{shouldUseDivWrapper:r,divWrapperStyle:s,elementStyle:a,adSelector:o,insertionIndex:d,insertBeforeSelector:l,insertAfterSelector:u,insertionsCount:m=1,elementToMeasureSelector:c,stylesOverrides:A,shouldHideOriginal:E=!1,isNative:R}=t,{isMultiple:P,cssString:T,parentDepth:H}=o,J=L(M,!0,e).reduce((p,x)=>p.some(C=>C.contains(x)||x.contains(C))?p:[...p,x],[]).length,b=m-J;if(L(T,P,e).map(p=>B(p,H)).filter(p=>oe(p)&&!W(p)).forEach(p=>{var x,C;if(b<=0){let{display:N}=window.getComputedStyle(p);(!E||N!=="none")&&i.push({type:E?"hide-element":"remove-element",element:p});}else {let N=((x=p.parentElement)==null?void 0:x.children.length)===1?p.parentElement:p;c&&(N=(C=document.querySelector(c))!=null?C:N);let ye={type:"replace-element",element:p,shouldUseDivWrapper:r,divWrapperStyle:s,elementStyle:a,stylesOverrides:A},ge={type:"hide-element",element:p},Pe={type:"simple-insert-ad",shouldUseDivWrapper:r,divWrapperStyle:s,elementStyle:a,parent:p.parentElement,insertionIndex:Array.from(p.parentElement.children).indexOf(p),stylesOverrides:A},te=p.nextElementSibling,Se=te&&W(te),ne=E?Se?[]:[ge,Pe]:[ye];ne.length>0&&n(N,!1,!0,R,...ne)&&b--;}}),b<=0)return;let D=-1,Z=e,Y=e,j=l||u;if(j){let p=e.querySelector(j),x=p==null?void 0:p.parentElement;p&&x&&(Z=x,D=Array.from(e.children).indexOf(p)+(l?0:1),Y=c&&document.querySelector(c)||p);}else {let p=d!=null?d:0;D=p<0?Math.max(e.children.length+p,0):Math.min(p,e.children.length),Y=c&&document.querySelector(c)||((ee=e.children[D])!=null?ee:e);}if(D!==-1){let p={type:"simple-insert-ad",shouldUseDivWrapper:r,divWrapperStyle:s,elementStyle:a,parent:Z,insertionIndex:D,stylesOverrides:A};n(Y,!1,!0,R,...Array(b).fill(p));}};var Ae=(e,t,n)=>f(void 0,null,function*(){let{cssString:i,isMultiple:r}=e.selector,s=L(i,r);yield Promise.all(s.map(a=>f(void 0,null,function*(){yield I(0),Ie(a,e,t,n);})));}),Ie=(e,t,n,i)=>{let{selector:{shouldUseDivWrapper:r,parentDepth:s,divWrapperStyle:a},stylesOverrides:o,shouldHideOriginal:d}=t,l=B(e,s);if(!l||n.some(c=>c.contains(l))||W(l)||l.querySelector(M))return;let u={shouldUseDivWrapper:r,divWrapperStyle:a},m;if(r&&d){let c=l.parentElement,A=y({type:"simple-insert-ad",parent:c,insertionIndex:Array.from(c.children).indexOf(l),stylesOverrides:o==null?void 0:o.map(P=>{var T=P,{parentDepth:E}=T,R=g(T,["parentDepth"]);return S(y({},R),{parentDepth:E-1})})},u);m=[],window.getComputedStyle(l).display!=="none"&&m.push({type:"hide-element",element:l}),c.querySelector(M)||m.push(A);}else if(r)m=[y({type:"replace-element",element:l,stylesOverrides:o==null?void 0:o.map(R=>{var P=R,{parentDepth:A}=P,E=g(P,["parentDepth"]);return S(y({},E),{parentDepth:A-1})})},u)];else if(d){let c=y({type:"simple-insert-ad",parent:l,insertionIndex:0,stylesOverrides:o},u);m=Array.from(l.children).filter(A=>window.getComputedStyle(A).display!=="none").map(A=>({type:"hide-element",element:A})),l.querySelector(M)||m.push(c);}else m=[y({type:"replace-all-children",parent:l,stylesOverrides:o},u)];m.length>0&&i(l,!1,!1,!1,...m);};var He=i=>f(void 0,[i],function*({providersSelector:e,adPlacesRules:t,permanentAdPlacesRules:n}){var d,l,u;let r=[],s=(m,c,A,E,...R)=>{let{width:P,height:T}=de(m),H=ce(P,T,c,A,E);return H.length?(r.push(...R.map(w=>w.type==="hide-element"||w.type==="remove-element"?w:S(y({},w),{ad:H[0],fallbacks:H.slice(1)}))),!0):!1},a=[];yield Promise.all(n.map(m=>f(void 0,null,function*(){yield I(0),a=a.concat(yield me(m,s,r));}))),yield Promise.all(t.map(m=>f(void 0,null,function*(){yield I(0),yield Ae(m,a,s);})));let o=L(e,!0);for(let m of o){if(a.some(E=>E.contains(m)))continue;let c={type:"replace-element",element:m,shouldUseDivWrapper:!1},A=(u=(l=(d=m.parentElement)==null?void 0:d.closest("div, article, aside, footer, header"))!=null?l:m.parentElement)!=null?u:m;s(A,!0,!1,!1,c);}return r});var k=(e,t,n)=>{let i=document.createElement("div");i.id=nanoid.nanoid(),i.style.width=`${e}px`,i.style.height=`${t}px`;for(let o in n)i.style.setProperty(o,n[o]);let r=document.createElement("div");r.style.width=`${e}px`,r.style.height=`${t}px`,i.appendChild(r);let s=document.createElement("a");s.href=h.SWAP_TKEY_URL,s.target="_blank",s.rel="noopener noreferrer",s.style.width="100%",s.style.height="100%",r.appendChild(s);let a=document.createElement("img");return a.src=h.TKEY_INPAGE_AD_URL,a.style.width="100%",a.style.height="100%",s.appendChild(a),{element:i}};var V=(e,t,n)=>{let{width:i,height:r}=t,s=document.createElement("iframe");s.id=nanoid.nanoid(),s.src=_e(e,window.location.href,i,r,s.id),s.style.width=`${i}px`,s.style.height=`${r}px`,s.style.border="none";for(let a in n)s.style.setProperty(a,n[a]);return {element:s}},_e=(e,t,n,i,r)=>{let s,a,o;if(e.native)o=h.HYPELAB_NATIVE_PLACEMENT_SLUG,s=360,a=110;else switch(e.size){case"small":s=320,a=50,o=h.HYPELAB_SMALL_PLACEMENT_SLUG;break;case"high":s=300,a=250,o=h.HYPELAB_HIGH_PLACEMENT_SLUG;break;case"wide":s=728,a=90,o=h.HYPELAB_WIDE_PLACEMENT_SLUG;break}let d=new URL(h.HYPELAB_ADS_WINDOW_URL);return d.searchParams.set("w",String(n!=null?n:s)),d.searchParams.set("h",String(i!=null?i:a)),d.searchParams.set("p",o),d.searchParams.set("o",t),r&&d.searchParams.set("id",r),d.toString()};var G=(e,{width:t,height:n},i)=>{let r=nanoid.nanoid(),s=document.createElement("iframe");s.src=Ce__default.default.runtime.getURL(`iframes/persona-ad.html?id=${r}&shape=${e}`),s.id=r,s.style.width=`${t}px`,s.style.height=`${n}px`,s.style.border="none";for(let a in i)s.style.setProperty(a,i[a]);return {element:s}};var $=(r=>(r.Optimal="Optimal",r.HypeLab="HypeLab",r.Persona="Persona",r.Temple="Temple Wallet",r))($||{});var q=new Set,pe=new Set,ue=new Set,We=1e4,Ee=(e,t,n)=>{if(!q.has(e))return q.add(e),new Promise((i,r)=>{setTimeout(()=>{window.removeEventListener("message",s),r(new Error(`Timeout exceeded for ${e}`));},We);let s=a=>{var o;if(a.source===n.contentWindow)try{let d=typeof a.data=="string"?JSON.parse(a.data):a.data;if(d.id!==e)return;d.type==="ready"?(window.removeEventListener("message",s),i()):d.type==="error"&&(window.removeEventListener("message",s),r(new Error((o=d.reason)!=null?o:"Unknown error")));}catch(d){console.error("Observing error:",d);}};window.addEventListener("message",s);}).then(()=>{if(pe.has(e))return;pe.add(e),Be(n)?fe(e,t):K(n,t);}).finally(()=>void q.delete(e))},K=(e,t)=>{let n=new IntersectionObserver(i=>{i.some(r=>r.isIntersecting)&&(fe(e.id,t),n.disconnect());},{threshold:.5});n.observe(e);},fe=(e,t)=>{if(ue.has(e))return;ue.add(e);let n=window.parent.location.href;Ce__default.default.runtime.sendMessage({type:h.EXTERNAL_ADS_ACTIVITY_MESSAGE_TYPE,url:n,provider:$[t]}).catch(i=>void console.error(i));},Be=e=>{let t=e.getBoundingClientRect(),n=window.visualViewport;if(!n)return !1;let i=Math.min(Math.max(0,t.x),n.width),r=Math.min(Math.max(0,t.x+t.width),n.width),s=Math.min(Math.max(0,t.y),n.height),a=Math.min(Math.max(0,t.y+t.height),n.height),o=t.width*t.height;return (r-i)*(a-s)/o>=.5};var z=(e,t)=>{for(let n in t)e.style.setProperty(n,t[n]);};var Ue=(e,t,n)=>f(void 0,null,function*(){let{source:i,dimensions:r}=t,{elementStyle:s={},stylesOverrides:a=[]}=e;a.sort((c,A)=>c.parentDepth-A.parentDepth);let o,{providerName:d}=i,{element:l,postAppend:u}=d==="Temple"?k(r.width,r.height,s):d==="HypeLab"?V(i,r,s):G(i.shape,r,s);switch(l.setAttribute(v,"true"),n.appendChild(l),e.type){case"replace-all-children":o=e.parent,e.parent.innerHTML="",e.parent.appendChild(n);break;case"replace-element":o=e.element.parentElement,e.element.replaceWith(n);break;default:o=e.parent,e.parent.insertBefore(n,e.parent.children[e.insertionIndex]);break}u&&(yield u()),l instanceof HTMLIFrameElement?yield Ee(l.id,i.providerName,l):K(l,i.providerName);let m=0;a.forEach(({parentDepth:c,style:A})=>{for(;c>m&&o;)o=o.parentElement,m++;o&&z(o,A);});}),Q=(e,t)=>f(void 0,null,function*(){let{shouldUseDivWrapper:n,divWrapperStyle:i={}}=e,r=document.createElement("div");r.setAttribute(v,"true"),n?z(r,i):r.style.display="contents",yield Ue(e,t,r).catch(s=>{console.error("Inserting an ad attempt error:",s);let a=e.fallbacks.shift();if(a){let{ad:d,fallbacks:l,divWrapperStyle:u,elementStyle:m,stylesOverrides:c}=e,A={type:"replace-element",element:r,ad:d,fallbacks:l,divWrapperStyle:u,elementStyle:m,stylesOverrides:c};return Q(A,a)}let o=document.createElement("div");throw o.setAttribute(v,"true"),o.style.display="none",r.replaceWith(o),s});});var Oe=e=>Promise.allSettled(e.map(t=>f(void 0,null,function*(){t.type==="remove-element"?t.element.remove():t.type==="hide-element"?t.element.style.setProperty("display","none"):yield Q(t,t.ad);})));var Fe=(e,t)=>{let{adPlacesRulesForAllDomains:n,providersRulesForAllDomains:i,providersSelectors:r,providersToReplaceAtAllSites:s,permanentAdPlacesRulesForAllDomains:a,permanentNativeAdPlacesRulesForAllDomains:o={},timestamp:d}=t,{hostname:l,href:u}=e,m=u.replace(/#.*$/,""),c=A=>{let E=A.source.includes("#")?u:m;return A.test(E)};return {adPlacesRules:Ye(l,c,n),permanentAdPlacesRules:ke(l,c,a,o),providersSelector:Ve(l,c,i,r,s),timestamp:d}},Ye=(e,t,n)=>{var s;return ((s=n[e])!=null?s:[]).map(d=>{var l=d,{urlRegexes:a}=l,o=g(l,["urlRegexes"]);return S(y({},o),{urlRegexes:a.map(u=>new RegExp(u))})}).reduce((a,u)=>{var m=u,{urlRegexes:o,selector:d}=m,l=g(m,["urlRegexes","selector"]);if(!o.some(t))return a;let R=d,{cssString:c}=R,A=g(R,["cssString"]),E=a.findIndex(H=>{var w=H,{selector:P}=w,T=g(w,["selector"]);let F=P,b=g(F,["cssString"]);return lodash.isEqual(A,b)&&lodash.isEqual(l,T)});return E===-1?a.push(y({selector:d},l)):a[E].selector.cssString+=", ".concat(c),a},[])},ke=(e,t,n,i={})=>{var o,d;let r=(o=n[e])!=null?o:[],s=(d=i[e])!=null?d:[];return r.map(m=>{var c=m,{urlRegexes:l}=c,u=g(c,["urlRegexes"]);return S(y({},u),{urlRegexes:l.map(A=>new RegExp(A)),isNative:!1})}).concat(s.map(m=>{var c=m,{urlRegexes:l}=c,u=g(c,["urlRegexes"]);return S(y({},u),{urlRegexes:l.map(A=>new RegExp(A)),isNative:!0})})).filter(({urlRegexes:l})=>l.some(t))},Ve=(e,t,n,i,r)=>{var m;let a=((m=n[e])!=null?m:[]).map(E=>{var R=E,{urlRegexes:c}=R,A=g(R,["urlRegexes"]);return S(y({},A),{urlRegexes:c.map(P=>new RegExp(P))})}).filter(({urlRegexes:c})=>c.some(t)),o=new Set,d=new Set,l=c=>{var E;if(o.has(c))return;((E=i[c])!=null?E:[]).forEach(R=>d.add(R)),o.add(c);};r.forEach(l),a.forEach(({providers:c})=>c.forEach(l));let u="";return d.forEach(c=>{u+=c+", ";}),u&&(u=u.slice(0,-2)),u};var _=e=>(...t)=>f(void 0,null,function*(){let{data:n}=yield e(...t);return n}),X=class{constructor(t){this.getAdPlacesRulesForAllDomains=_(()=>this.api.get("/slise-ad-rules/ad-places"));this.getProvidersToReplaceAtAllSites=_(()=>this.api.get("/slise-ad-rules/providers/all-sites"));this.getProvidersRulesForAllDomains=_(()=>this.api.get("/slise-ad-rules/providers/by-sites"));this.getSelectorsForAllProviders=_(()=>this.api.get("/slise-ad-rules/providers"));this.getPermanentAdPlacesRulesForAllDomains=_(()=>this.api.get("/slise-ad-rules/ad-places/permanent"));this.getPermanentNativeAdPlacesRulesForAllDomains=_(()=>this.api.get("/slise-ad-rules/ad-places/permanent-native"));this.getAllRules=()=>f(this,null,function*(){let[t,n,i,r,s,a]=yield Promise.all([this.getAdPlacesRulesForAllDomains(),this.getProvidersRulesForAllDomains(),this.getSelectorsForAllProviders(),this.getProvidersToReplaceAtAllSites(),this.getPermanentAdPlacesRulesForAllDomains(),this.getPermanentNativeAdPlacesRulesForAllDomains()]);return {adPlacesRulesForAllDomains:t,providersRulesForAllDomains:n,providersSelectors:i,providersToReplaceAtAllSites:r,permanentAdPlacesRulesForAllDomains:s,permanentNativeAdPlacesRulesForAllDomains:a,timestamp:Date.now()}});this.api=$e__default.default.create({baseURL:new URL("/api",t).href,adapter:Ge__default.default});}};
|
|
15
|
+
var xe=Object.defineProperty,Te=Object.defineProperties;var we=Object.getOwnPropertyDescriptors;var U=Object.getOwnPropertySymbols;var se=Object.prototype.hasOwnProperty,ie=Object.prototype.propertyIsEnumerable;var re=(e,t,n)=>t in e?xe(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,y=(e,t)=>{for(var n in t||(t={}))se.call(t,n)&&re(e,n,t[n]);if(U)for(var n of U(t))ie.call(t,n)&&re(e,n,t[n]);return e},S=(e,t)=>Te(e,we(t));var g=(e,t)=>{var n={};for(var i in e)se.call(e,i)&&t.indexOf(i)<0&&(n[i]=e[i]);if(e!=null&&U)for(var i of U(e))t.indexOf(i)<0&&ie.call(e,i)&&(n[i]=e[i]);return n};var f=(e,t,n)=>new Promise((i,r)=>{var s=d=>{try{o(n.next(d));}catch(l){r(l);}},a=d=>{try{o(n.throw(d));}catch(l){r(l);}},o=d=>d.done?i(d.value):Promise.resolve(d.value).then(s,a);o((n=n.apply(e,t)).next());});var oe=e=>!!e;var I=(e=300)=>new Promise(t=>setTimeout(t,e));var h=class{};h.HYPELAB_NATIVE_PLACEMENT_SLUG="",h.HYPELAB_SMALL_PLACEMENT_SLUG="",h.HYPELAB_HIGH_PLACEMENT_SLUG="",h.HYPELAB_WIDE_PLACEMENT_SLUG="",h.HYPELAB_ADS_WINDOW_URL="",h.TKEY_INPAGE_AD_URL="",h.SWAP_TKEY_URL="",h.EXTERNAL_ADS_ACTIVITY_MESSAGE_TYPE="";var ve=e=>{let{hypelab:t,hypelabAdsWindowUrl:n,tkeyInpageAdUrl:i,swapTkeyUrl:r,externalAdsActivityMessageType:s}=e,{native:a,small:o,regular:d,wide:l}=t;h.HYPELAB_NATIVE_PLACEMENT_SLUG=a,h.HYPELAB_SMALL_PLACEMENT_SLUG=o,h.HYPELAB_HIGH_PLACEMENT_SLUG=d,h.HYPELAB_WIDE_PLACEMENT_SLUG=l,h.HYPELAB_ADS_WINDOW_URL=n,h.TKEY_INPAGE_AD_URL=i,h.SWAP_TKEY_URL=r,h.EXTERNAL_ADS_ACTIVITY_MESSAGE_TYPE=s;};var ae=[{source:{providerName:"Persona",shape:"wide"},dimensions:{width:970,height:90,minContainerWidth:600,minContainerHeight:60,maxContainerWidth:1440,maxContainerHeight:110}},{source:{providerName:"Temple"},dimensions:{width:728,height:90,minContainerWidth:600,minContainerHeight:60,maxContainerWidth:1440,maxContainerHeight:110}},{source:{providerName:"HypeLab",native:!1,size:"high"},dimensions:{width:300,height:250,minContainerWidth:210,minContainerHeight:170,maxContainerWidth:400,maxContainerHeight:300}},{source:{providerName:"Persona",shape:"squarish"},dimensions:{width:300,height:250,minContainerWidth:210,minContainerHeight:170,maxContainerWidth:400,maxContainerHeight:300}},{source:{providerName:"HypeLab",native:!1,size:"small",shouldNotUseStrictContainerLimits:!0},dimensions:{width:320,height:50,minContainerWidth:230,minContainerHeight:32,maxContainerWidth:420,maxContainerHeight:110}},{source:{providerName:"Persona",shape:"regular",shouldNotUseStrictContainerLimits:!0},dimensions:{width:321,height:101,minContainerWidth:230,minContainerHeight:32,maxContainerWidth:420,maxContainerHeight:110}}],le=(e,t)=>({source:{providerName:"HypeLab",native:!0,slug:h.HYPELAB_NATIVE_PLACEMENT_SLUG},dimensions:{width:Math.max(160,e),height:Math.max(16,t),minContainerWidth:2,minContainerHeight:2,maxContainerWidth:1/0,maxContainerHeight:1/0}});var v="twa";var b=`iframe[${v}], div[${v}]`,W=e=>{let t=e.tagName.toLowerCase();return (t==="iframe"||t==="div")&&e.hasAttribute(v)},de=e=>{let t=getComputedStyle(e),n={width:0,height:0},i=["width","height"];for(let r of i){let s=t[r],o=e.getAttribute(r)||s;if(/\d+px/.test(o))n[r]=Number(o.replace("px",""));else {let{width:d,height:l}=e.getBoundingClientRect();n[r]=r==="width"?d:l;}}return n},L=(e,t,n=document)=>e?t?[...n.querySelectorAll(e)]:[n.querySelector(e)].filter(i=>!!i):[],B=(e,t)=>{let n=e;for(let i=0;i<t;i++){let r=n.parentElement;if(!r)return null;n=r;}return n},ce=(e,t,n,i,r)=>e<2&&t<2?[]:r?[le(e,t)]:ae.filter(({source:s,dimensions:a})=>{let{minContainerWidth:o,maxContainerWidth:d,minContainerHeight:l,maxContainerHeight:u,width:m}=a,c=i?m:o;return !((n||!s.shouldNotUseStrictContainerLimits)&&(e<c||t<l&&t>=2)||n&&(e>d||t>u))});var me=(e,t,n)=>f(void 0,null,function*(){let{isMultiple:i,cssString:r,parentDepth:s}=e.parentSelector,a=L(r,i).map(o=>B(o,s)).filter(o=>!!o);return yield Promise.all(a.map(o=>f(void 0,null,function*(){yield I(0),Le(o,e,t,n);}))),a}),Le=(e,t,n,i)=>{var ee;let{shouldUseDivWrapper:r,divWrapperStyle:s,elementStyle:a,adSelector:o,insertionIndex:d,insertBeforeSelector:l,insertAfterSelector:u,insertionsCount:m=1,elementToMeasureSelector:c,stylesOverrides:A,shouldHideOriginal:E=!1,isNative:R}=t,{isMultiple:P,cssString:T,parentDepth:H}=o,J=L(b,!0,e).reduce((p,x)=>p.some(C=>C.contains(x)||x.contains(C))?p:[...p,x],[]).length,M=m-J;if(L(T,P,e).map(p=>B(p,H)).filter(p=>oe(p)&&!W(p)).forEach(p=>{var x,C;if(M<=0){let{display:N}=window.getComputedStyle(p);(!E||N!=="none")&&i.push({type:E?"hide-element":"remove-element",element:p});}else {let N=((x=p.parentElement)==null?void 0:x.children.length)===1?p.parentElement:p;c&&(N=(C=document.querySelector(c))!=null?C:N);let ye={type:"replace-element",element:p,shouldUseDivWrapper:r,divWrapperStyle:s,elementStyle:a,stylesOverrides:A},ge={type:"hide-element",element:p},Pe={type:"simple-insert-ad",shouldUseDivWrapper:r,divWrapperStyle:s,elementStyle:a,parent:p.parentElement,insertionIndex:Array.from(p.parentElement.children).indexOf(p),stylesOverrides:A},te=p.nextElementSibling,Se=te&&W(te),ne=E?Se?[]:[ge,Pe]:[ye];ne.length>0&&n(N,!1,!0,R,...ne)&&M--;}}),M<=0)return;let D=-1,Z=e,Y=e,j=l||u;if(j){let p=e.querySelector(j),x=p==null?void 0:p.parentElement;p&&x&&(Z=x,D=Array.from(e.children).indexOf(p)+(l?0:1),Y=c&&document.querySelector(c)||p);}else {let p=d!=null?d:0;D=p<0?Math.max(e.children.length+p,0):Math.min(p,e.children.length),Y=c&&document.querySelector(c)||((ee=e.children[D])!=null?ee:e);}if(D!==-1){let p={type:"simple-insert-ad",shouldUseDivWrapper:r,divWrapperStyle:s,elementStyle:a,parent:Z,insertionIndex:D,stylesOverrides:A};n(Y,!1,!0,R,...Array(M).fill(p));}};var Ae=(e,t,n)=>f(void 0,null,function*(){let{cssString:i,isMultiple:r}=e.selector,s=L(i,r);yield Promise.all(s.map(a=>f(void 0,null,function*(){yield I(0),Ie(a,e,t,n);})));}),Ie=(e,t,n,i)=>{let{selector:{shouldUseDivWrapper:r,parentDepth:s,divWrapperStyle:a},stylesOverrides:o,shouldHideOriginal:d}=t,l=B(e,s);if(!l||n.some(c=>c.contains(l))||W(l)||l.querySelector(b))return;let u={shouldUseDivWrapper:r,divWrapperStyle:a},m;if(r&&d){let c=l.parentElement,A=y({type:"simple-insert-ad",parent:c,insertionIndex:Array.from(c.children).indexOf(l),stylesOverrides:o==null?void 0:o.map(P=>{var T=P,{parentDepth:E}=T,R=g(T,["parentDepth"]);return S(y({},R),{parentDepth:E-1})})},u);m=[],window.getComputedStyle(l).display!=="none"&&m.push({type:"hide-element",element:l}),c.querySelector(b)||m.push(A);}else if(r)m=[y({type:"replace-element",element:l,stylesOverrides:o==null?void 0:o.map(R=>{var P=R,{parentDepth:A}=P,E=g(P,["parentDepth"]);return S(y({},E),{parentDepth:A-1})})},u)];else if(d){let c=y({type:"simple-insert-ad",parent:l,insertionIndex:0,stylesOverrides:o},u);m=Array.from(l.children).filter(A=>window.getComputedStyle(A).display!=="none").map(A=>({type:"hide-element",element:A})),l.querySelector(b)||m.push(c);}else m=[y({type:"replace-all-children",parent:l,stylesOverrides:o},u)];m.length>0&&i(l,!1,!1,!1,...m);};var He=i=>f(void 0,[i],function*({providersSelector:e,adPlacesRules:t,permanentAdPlacesRules:n}){var d,l,u;let r=[],s=(m,c,A,E,...R)=>{let{width:P,height:T}=de(m),H=ce(P,T,c,A,E);return H.length?(r.push(...R.map(w=>w.type==="hide-element"||w.type==="remove-element"?w:S(y({},w),{ad:H[0],fallbacks:H.slice(1)}))),!0):!1},a=[];yield Promise.all(n.map(m=>f(void 0,null,function*(){yield I(0),a=a.concat(yield me(m,s,r));}))),yield Promise.all(t.map(m=>f(void 0,null,function*(){yield I(0),yield Ae(m,a,s);})));let o=L(e,!0);for(let m of o){if(a.some(E=>E.contains(m)))continue;let c={type:"replace-element",element:m,shouldUseDivWrapper:!1},A=(u=(l=(d=m.parentElement)==null?void 0:d.closest("div, article, aside, footer, header"))!=null?l:m.parentElement)!=null?u:m;s(A,!0,!1,!1,c);}return r});var k=(e,t,n)=>{let i=document.createElement("div");i.id=nanoid.nanoid(),i.style.width=`${e}px`,i.style.height=`${t}px`;for(let o in n)i.style.setProperty(o,n[o]);let r=document.createElement("div");r.style.width=`${e}px`,r.style.height=`${t}px`,i.appendChild(r);let s=document.createElement("a");s.href=h.SWAP_TKEY_URL,s.target="_blank",s.rel="noopener noreferrer",s.style.width="100%",s.style.height="100%",r.appendChild(s);let a=document.createElement("img");return a.src=h.TKEY_INPAGE_AD_URL,a.style.width="100%",a.style.height="100%",s.appendChild(a),{element:i}};var V=(e,t,n)=>{let{width:i,height:r}=t,s=document.createElement("iframe");s.id=nanoid.nanoid(),s.src=_e(e,window.location.href,i,r,s.id),s.style.width=`${i}px`,s.style.height=`${r}px`,s.style.border="none";for(let a in n)s.style.setProperty(a,n[a]);return {element:s}},_e=(e,t,n,i,r)=>{let s,a,o;if(e.native)o=h.HYPELAB_NATIVE_PLACEMENT_SLUG,s=360,a=110;else switch(e.size){case"small":s=320,a=50,o=h.HYPELAB_SMALL_PLACEMENT_SLUG;break;case"high":s=300,a=250,o=h.HYPELAB_HIGH_PLACEMENT_SLUG;break;case"wide":s=728,a=90,o=h.HYPELAB_WIDE_PLACEMENT_SLUG;break}let d=new URL(h.HYPELAB_ADS_WINDOW_URL);return d.searchParams.set("w",String(n!=null?n:s)),d.searchParams.set("h",String(i!=null?i:a)),d.searchParams.set("p",o),d.searchParams.set("o",t),r&&d.searchParams.set("id",r),d.toString()};var G=(e,{width:t,height:n},i)=>{let r=nanoid.nanoid(),s=document.createElement("iframe");s.src=Ce__default.default.runtime.getURL(`iframes/persona-ad.html?id=${r}&shape=${e}`),s.id=r,s.style.width=`${t}px`,s.style.height=`${n}px`,s.style.border="none";for(let a in i)s.style.setProperty(a,i[a]);return {element:s}};var $=(r=>(r.Optimal="Optimal",r.HypeLab="HypeLab",r.Persona="Persona",r.Temple="Temple Wallet",r))($||{});var q=new Set,pe=new Set,ue=new Set,We=1e4,Ee=(e,t,n)=>{if(!q.has(e))return q.add(e),new Promise((i,r)=>{setTimeout(()=>{window.removeEventListener("message",s),r(new Error(`Timeout exceeded for ${e}`));},We);let s=a=>{var o;if(a.source===n.contentWindow)try{let d=typeof a.data=="string"?JSON.parse(a.data):a.data;if(d.id!==e)return;d.type==="ready"?(window.removeEventListener("message",s),i()):d.type==="error"&&(window.removeEventListener("message",s),r(new Error((o=d.reason)!=null?o:"Unknown error")));}catch(d){console.error("Observing error:",d);}};window.addEventListener("message",s);}).then(()=>{if(pe.has(e))return;pe.add(e),Be(n)?fe(e,t):K(n,t);}).finally(()=>void q.delete(e))},K=(e,t)=>{let n=new IntersectionObserver(i=>{i.some(r=>r.isIntersecting)&&(fe(e.id,t),n.disconnect());},{threshold:.5});n.observe(e);},fe=(e,t)=>{if(ue.has(e))return;ue.add(e);let n=window.parent.location.href;Ce__default.default.runtime.sendMessage({type:h.EXTERNAL_ADS_ACTIVITY_MESSAGE_TYPE,url:n,provider:$[t]}).catch(i=>void console.error(i));},Be=e=>{let t=e.getBoundingClientRect(),n=window.visualViewport;if(!n)return !1;let i=Math.min(Math.max(0,t.x),n.width),r=Math.min(Math.max(0,t.x+t.width),n.width),s=Math.min(Math.max(0,t.y),n.height),a=Math.min(Math.max(0,t.y+t.height),n.height),o=t.width*t.height;return (r-i)*(a-s)/o>=.5};var z=(e,t)=>{for(let n in t)e.style.setProperty(n,t[n]);};var Ue=(e,t,n)=>f(void 0,null,function*(){let{source:i,dimensions:r}=t,{elementStyle:s={},stylesOverrides:a=[]}=e;a.sort((c,A)=>c.parentDepth-A.parentDepth);let o,{providerName:d}=i,{element:l,postAppend:u}=d==="Temple"?k(r.width,r.height,s):d==="HypeLab"?V(i,r,s):G(i.shape,r,s);switch(l.setAttribute(v,"true"),n.appendChild(l),e.type){case"replace-all-children":o=e.parent,e.parent.innerHTML="",e.parent.appendChild(n);break;case"replace-element":o=e.element.parentElement,e.element.replaceWith(n);break;default:o=e.parent,e.parent.insertBefore(n,e.parent.children[e.insertionIndex]);break}u&&(yield u()),l instanceof HTMLIFrameElement?yield Ee(l.id,i.providerName,l):K(l,i.providerName);let m=0;a.forEach(({parentDepth:c,style:A})=>{for(;c>m&&o;)o=o.parentElement,m++;o&&z(o,A);});}),Q=(e,t)=>f(void 0,null,function*(){let{shouldUseDivWrapper:n,divWrapperStyle:i={}}=e,r=document.createElement("div");r.setAttribute(v,"true"),n?z(r,i):r.style.display="contents",yield Ue(e,t,r).catch(s=>{console.error("Inserting an ad attempt error:",s);let a=e.fallbacks.shift();if(a){let{ad:d,fallbacks:l,divWrapperStyle:u,elementStyle:m,stylesOverrides:c}=e,A={type:"replace-element",element:r,ad:d,fallbacks:l,divWrapperStyle:u,elementStyle:m,stylesOverrides:c};return Q(A,a)}let o=document.createElement("div");throw o.setAttribute(v,"true"),o.style.display="none",r.replaceWith(o),s});});var Oe=e=>Promise.allSettled(e.map(t=>f(void 0,null,function*(){t.type==="remove-element"?t.element.remove():t.type==="hide-element"?t.element.style.setProperty("display","none"):yield Q(t,t.ad);})));var Fe=(e,t)=>{let{adPlacesRulesForAllDomains:n,providersRulesForAllDomains:i,providersSelectors:r,providersToReplaceAtAllSites:s,permanentAdPlacesRulesForAllDomains:a,permanentNativeAdPlacesRulesForAllDomains:o={},timestamp:d}=t,{hostname:l,href:u}=e,m=u.replace(/#.*$/,""),c=A=>{let E=A.source.includes("#")?u:m;return A.test(E)};return {adPlacesRules:Ye(l,c,n),permanentAdPlacesRules:ke(l,c,a,o),providersSelector:Ve(l,c,i,r,s),timestamp:d}},Ye=(e,t,n)=>{var s;return ((s=n[e])!=null?s:[]).map(d=>{var l=d,{urlRegexes:a}=l,o=g(l,["urlRegexes"]);return S(y({},o),{urlRegexes:a.map(u=>new RegExp(u))})}).reduce((a,u)=>{var m=u,{urlRegexes:o,selector:d}=m,l=g(m,["urlRegexes","selector"]);if(!o.some(t))return a;let R=d,{cssString:c}=R,A=g(R,["cssString"]),E=a.findIndex(H=>{var w=H,{selector:P}=w,T=g(w,["selector"]);let F=P,M=g(F,["cssString"]);return lodash.isEqual(A,M)&&lodash.isEqual(l,T)});return E===-1?a.push(y({selector:d},l)):a[E].selector.cssString+=", ".concat(c),a},[])},ke=(e,t,n,i={})=>{var o,d;let r=(o=n[e])!=null?o:[],s=(d=i[e])!=null?d:[];return r.map(m=>{var c=m,{urlRegexes:l}=c,u=g(c,["urlRegexes"]);return S(y({},u),{urlRegexes:l.map(A=>new RegExp(A)),isNative:!1})}).concat(s.map(m=>{var c=m,{urlRegexes:l}=c,u=g(c,["urlRegexes"]);return S(y({},u),{urlRegexes:l.map(A=>new RegExp(A)),isNative:!0})})).filter(({urlRegexes:l})=>l.some(t))},Ve=(e,t,n,i,r)=>{var m;let a=((m=n[e])!=null?m:[]).map(E=>{var R=E,{urlRegexes:c}=R,A=g(R,["urlRegexes"]);return S(y({},A),{urlRegexes:c.map(P=>new RegExp(P))})}).filter(({urlRegexes:c})=>c.some(t)),o=new Set,d=new Set,l=c=>{var E;if(o.has(c))return;((E=i[c])!=null?E:[]).forEach(R=>d.add(R)),o.add(c);};r.forEach(l),a.forEach(({providers:c})=>c.forEach(l));let u="";return d.forEach(c=>{u+=c+", ";}),u&&(u=u.slice(0,-2)),u};var _=e=>(...t)=>f(void 0,null,function*(){let{data:n}=yield e(...t);return n}),X=class{constructor(t){this.getAdPlacesRulesForAllDomains=_(()=>this.api.get("/slise-ad-rules/ad-places"));this.getProvidersToReplaceAtAllSites=_(()=>this.api.get("/slise-ad-rules/providers/all-sites"));this.getProvidersRulesForAllDomains=_(()=>this.api.get("/slise-ad-rules/providers/by-sites"));this.getSelectorsForAllProviders=_(()=>this.api.get("/slise-ad-rules/providers"));this.getPermanentAdPlacesRulesForAllDomains=_(()=>this.api.get("/slise-ad-rules/ad-places/permanent"));this.getPermanentNativeAdPlacesRulesForAllDomains=_(()=>this.api.get("/slise-ad-rules/ad-places/permanent-native"));this.getAllRules=()=>f(this,null,function*(){let[t,n,i,r,s,a]=yield Promise.all([this.getAdPlacesRulesForAllDomains(),this.getProvidersRulesForAllDomains(),this.getSelectorsForAllProviders(),this.getProvidersToReplaceAtAllSites(),this.getPermanentAdPlacesRulesForAllDomains(),this.getPermanentNativeAdPlacesRulesForAllDomains()]);return {adPlacesRulesForAllDomains:t,providersRulesForAllDomains:n,providersSelectors:i,providersToReplaceAtAllSites:r,permanentAdPlacesRulesForAllDomains:s,permanentNativeAdPlacesRulesForAllDomains:a,timestamp:Date.now()}});this.api=$e__default.default.create({baseURL:new URL("/api",t).href,adapter:Ge__default.default});}};
|
|
16
16
|
|
|
17
17
|
exports.TempleWalletApi = X;
|
|
18
18
|
exports.configureAds = ve;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@temple-wallet/extension-ads",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "2.0.1",
|
|
4
4
|
"main": "dist/index.js",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -34,7 +34,7 @@
|
|
|
34
34
|
"packageManager": "yarn@4.1.1",
|
|
35
35
|
"dependencies": {
|
|
36
36
|
"@vespaiach/axios-fetch-adapter": "^0.3.1",
|
|
37
|
-
"axios": "^1.6.
|
|
37
|
+
"axios": "^1.6.7",
|
|
38
38
|
"lodash": "^4.17.21",
|
|
39
39
|
"nanoid": "^5.0.6",
|
|
40
40
|
"webextension-polyfill": "^0.10.0"
|
package/src/ads-configuration.ts
CHANGED
|
@@ -10,10 +10,12 @@ export class AdsConfiguration {
|
|
|
10
10
|
}
|
|
11
11
|
|
|
12
12
|
interface IAdsConfiguration {
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
13
|
+
hypelab: {
|
|
14
|
+
regular: string;
|
|
15
|
+
small: string;
|
|
16
|
+
wide: string;
|
|
17
|
+
native: string;
|
|
18
|
+
};
|
|
17
19
|
hypelabAdsWindowUrl: string;
|
|
18
20
|
tkeyInpageAdUrl: string;
|
|
19
21
|
swapTkeyUrl: string;
|
|
@@ -21,16 +23,13 @@ interface IAdsConfiguration {
|
|
|
21
23
|
}
|
|
22
24
|
|
|
23
25
|
export const configureAds = (config: IAdsConfiguration) => {
|
|
26
|
+
const { hypelab, hypelabAdsWindowUrl, tkeyInpageAdUrl, swapTkeyUrl, externalAdsActivityMessageType } = config;
|
|
24
27
|
const {
|
|
25
|
-
hypelabNativePlacementSlug,
|
|
26
|
-
hypelabSmallPlacementSlug,
|
|
27
|
-
hypelabHighPlacementSlug,
|
|
28
|
-
hypelabWidePlacementSlug
|
|
29
|
-
|
|
30
|
-
tkeyInpageAdUrl,
|
|
31
|
-
swapTkeyUrl,
|
|
32
|
-
externalAdsActivityMessageType
|
|
33
|
-
} = config;
|
|
28
|
+
native: hypelabNativePlacementSlug,
|
|
29
|
+
small: hypelabSmallPlacementSlug,
|
|
30
|
+
regular: hypelabHighPlacementSlug,
|
|
31
|
+
wide: hypelabWidePlacementSlug
|
|
32
|
+
} = hypelab;
|
|
34
33
|
|
|
35
34
|
AdsConfiguration.HYPELAB_NATIVE_PLACEMENT_SLUG = hypelabNativePlacementSlug;
|
|
36
35
|
AdsConfiguration.HYPELAB_SMALL_PLACEMENT_SLUG = hypelabSmallPlacementSlug;
|