@temple-wallet/extension-ads 6.3.0 → 6.3.2

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.
Files changed (81) hide show
  1. package/dist/index.js +13 -1363
  2. package/package.json +1 -1
  3. package/dist/ads-actions/helpers.d.ts +0 -13
  4. package/dist/ads-actions/helpers.js +0 -83
  5. package/dist/ads-actions/helpers.js.map +0 -1
  6. package/dist/ads-actions/index.d.ts +0 -3
  7. package/dist/ads-actions/index.js +0 -45
  8. package/dist/ads-actions/index.js.map +0 -1
  9. package/dist/ads-actions/process-permanent-rule.d.ts +0 -3
  10. package/dist/ads-actions/process-permanent-rule.js +0 -132
  11. package/dist/ads-actions/process-permanent-rule.js.map +0 -1
  12. package/dist/ads-actions/process-providers-ads.d.ts +0 -3
  13. package/dist/ads-actions/process-providers-ads.js +0 -113
  14. package/dist/ads-actions/process-providers-ads.js.map +0 -1
  15. package/dist/ads-actions/process-rule.d.ts +0 -3
  16. package/dist/ads-actions/process-rule.js +0 -97
  17. package/dist/ads-actions/process-rule.js.map +0 -1
  18. package/dist/ads-configuration.d.ts +0 -33
  19. package/dist/ads-configuration.js +0 -29
  20. package/dist/ads-configuration.js.map +0 -1
  21. package/dist/ads-meta.d.ts +0 -17
  22. package/dist/ads-meta.js +0 -135
  23. package/dist/ads-meta.js.map +0 -1
  24. package/dist/constants.d.ts +0 -8
  25. package/dist/constants.js +0 -9
  26. package/dist/constants.js.map +0 -1
  27. package/dist/execute-ads-actions/ads-views/index.d.ts +0 -3
  28. package/dist/execute-ads-actions/ads-views/index.js +0 -4
  29. package/dist/execute-ads-actions/ads-views/index.js.map +0 -1
  30. package/dist/execute-ads-actions/ads-views/make-hypelab-ad.d.ts +0 -3
  31. package/dist/execute-ads-actions/ads-views/make-hypelab-ad.js +0 -60
  32. package/dist/execute-ads-actions/ads-views/make-hypelab-ad.js.map +0 -1
  33. package/dist/execute-ads-actions/ads-views/make-persona-ad.d.ts +0 -3
  34. package/dist/execute-ads-actions/ads-views/make-persona-ad.js +0 -11
  35. package/dist/execute-ads-actions/ads-views/make-persona-ad.js.map +0 -1
  36. package/dist/execute-ads-actions/ads-views/make-tkey-ad.d.ts +0 -2
  37. package/dist/execute-ads-actions/ads-views/make-tkey-ad.js +0 -24
  38. package/dist/execute-ads-actions/ads-views/make-tkey-ad.js.map +0 -1
  39. package/dist/execute-ads-actions/index.d.ts +0 -2
  40. package/dist/execute-ads-actions/index.js +0 -23
  41. package/dist/execute-ads-actions/index.js.map +0 -1
  42. package/dist/execute-ads-actions/observing.d.ts +0 -1
  43. package/dist/execute-ads-actions/observing.js +0 -123
  44. package/dist/execute-ads-actions/observing.js.map +0 -1
  45. package/dist/execute-ads-actions/override-element-styles.d.ts +0 -2
  46. package/dist/execute-ads-actions/override-element-styles.js +0 -6
  47. package/dist/execute-ads-actions/override-element-styles.js.map +0 -1
  48. package/dist/execute-ads-actions/process-insert-ad-action.d.ts +0 -2
  49. package/dist/execute-ads-actions/process-insert-ad-action.js +0 -120
  50. package/dist/execute-ads-actions/process-insert-ad-action.js.map +0 -1
  51. package/dist/index.js.map +0 -1
  52. package/dist/render-ads-stack.d.ts +0 -7
  53. package/dist/render-ads-stack.js +0 -101
  54. package/dist/render-ads-stack.js.map +0 -1
  55. package/dist/temple-wallet-api.d.ts +0 -17
  56. package/dist/temple-wallet-api.js +0 -56
  57. package/dist/temple-wallet-api.js.map +0 -1
  58. package/dist/transform-raw-rules.d.ts +0 -3
  59. package/dist/transform-raw-rules.js +0 -117
  60. package/dist/transform-raw-rules.js.map +0 -1
  61. package/dist/types/ad-view.d.ts +0 -3
  62. package/dist/types/ad-view.js +0 -2
  63. package/dist/types/ad-view.js.map +0 -1
  64. package/dist/types/ads-actions.d.ts +0 -54
  65. package/dist/types/ads-actions.js +0 -15
  66. package/dist/types/ads-actions.js.map +0 -1
  67. package/dist/types/ads-meta.d.ts +0 -46
  68. package/dist/types/ads-meta.js +0 -2
  69. package/dist/types/ads-meta.js.map +0 -1
  70. package/dist/types/ads-provider.d.ts +0 -7
  71. package/dist/types/ads-provider.js +0 -8
  72. package/dist/types/ads-provider.js.map +0 -1
  73. package/dist/types/ads-rules.d.ts +0 -17
  74. package/dist/types/ads-rules.js +0 -2
  75. package/dist/types/ads-rules.js.map +0 -1
  76. package/dist/types/temple-wallet-api.d.ts +0 -61
  77. package/dist/types/temple-wallet-api.js +0 -2
  78. package/dist/types/temple-wallet-api.js.map +0 -1
  79. package/dist/utils.d.ts +0 -6
  80. package/dist/utils.js +0 -4
  81. package/dist/utils.js.map +0 -1
package/dist/index.js CHANGED
@@ -1,1373 +1,23 @@
1
1
  'use strict';
2
2
 
3
3
  var nanoid = require('nanoid');
4
- var browser = require('webextension-polyfill');
4
+ var je = require('webextension-polyfill');
5
5
  var cryptoJs = require('crypto-js');
6
6
  var lodash = require('lodash');
7
- var axiosFetchAdapter = require('@vespaiach/axios-fetch-adapter');
8
- var axios = require('axios');
7
+ var pt = require('@vespaiach/axios-fetch-adapter');
8
+ var ut = require('axios');
9
9
 
10
10
  function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
11
11
 
12
- var browser__default = /*#__PURE__*/_interopDefault(browser);
13
- var axiosFetchAdapter__default = /*#__PURE__*/_interopDefault(axiosFetchAdapter);
14
- var axios__default = /*#__PURE__*/_interopDefault(axios);
12
+ var je__default = /*#__PURE__*/_interopDefault(je);
13
+ var pt__default = /*#__PURE__*/_interopDefault(pt);
14
+ var ut__default = /*#__PURE__*/_interopDefault(ut);
15
15
 
16
- var __defProp = Object.defineProperty;
17
- var __defProps = Object.defineProperties;
18
- var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
19
- var __getOwnPropSymbols = Object.getOwnPropertySymbols;
20
- var __hasOwnProp = Object.prototype.hasOwnProperty;
21
- var __propIsEnum = Object.prototype.propertyIsEnumerable;
22
- var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
23
- var __spreadValues = (a, b) => {
24
- for (var prop in b || (b = {}))
25
- if (__hasOwnProp.call(b, prop))
26
- __defNormalProp(a, prop, b[prop]);
27
- if (__getOwnPropSymbols)
28
- for (var prop of __getOwnPropSymbols(b)) {
29
- if (__propIsEnum.call(b, prop))
30
- __defNormalProp(a, prop, b[prop]);
31
- }
32
- return a;
33
- };
34
- var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
35
- var __objRest = (source, exclude) => {
36
- var target = {};
37
- for (var prop in source)
38
- if (__hasOwnProp.call(source, prop) && exclude.indexOf(prop) < 0)
39
- target[prop] = source[prop];
40
- if (source != null && __getOwnPropSymbols)
41
- for (var prop of __getOwnPropSymbols(source)) {
42
- if (exclude.indexOf(prop) < 0 && __propIsEnum.call(source, prop))
43
- target[prop] = source[prop];
44
- }
45
- return target;
46
- };
47
- var __async = (__this, __arguments, generator) => {
48
- return new Promise((resolve, reject) => {
49
- var fulfilled = (value) => {
50
- try {
51
- step(generator.next(value));
52
- } catch (e) {
53
- reject(e);
54
- }
55
- };
56
- var rejected = (value) => {
57
- try {
58
- step(generator.throw(value));
59
- } catch (e) {
60
- reject(e);
61
- }
62
- };
63
- var step = (x) => x.done ? resolve(x.value) : Promise.resolve(x.value).then(fulfilled, rejected);
64
- step((generator = generator.apply(__this, __arguments)).next());
65
- });
66
- };
16
+ var Fe=Object.defineProperty,Ge=Object.defineProperties;var $e=Object.getOwnPropertyDescriptors;var j=Object.getOwnPropertySymbols;var Se=Object.prototype.hasOwnProperty,Pe=Object.prototype.propertyIsEnumerable;var ge=(e,t,n)=>t in e?Fe(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,S=(e,t)=>{for(var n in t||(t={}))Se.call(t,n)&&ge(e,n,t[n]);if(j)for(var n of j(t))Pe.call(t,n)&&ge(e,n,t[n]);return e},x=(e,t)=>Ge(e,$e(t));var I=(e,t)=>{var n={};for(var i in e)Se.call(e,i)&&t.indexOf(i)<0&&(n[i]=e[i]);if(e!=null&&j)for(var i of j(e))t.indexOf(i)<0&&Pe.call(e,i)&&(n[i]=e[i]);return n};var g=(e,t,n)=>new Promise((i,r)=>{var o=s=>{try{a(n.next(s));}catch(c){r(c);}},d=s=>{try{a(n.throw(s));}catch(c){r(c);}},a=s=>s.done?i(s.value):Promise.resolve(s.value).then(o,d);a((n=n.apply(e,t)).next());});var Te=e=>!!e;var M=(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="",h.getPersonaIframeURL=()=>"",h.getAdsStackIframeURL=()=>"";var ze=e=>{let{hypelab:t,hypelabAdsWindowUrl:n,tkeyInpageAdUrl:i,swapTkeyUrl:r,externalAdsActivityMessageType:o,getPersonaIframeURL:d,getAdsStackIframeURL:a,extVersion:s,templePassphrase:c}=e,{native:l,small:m,regular:A,wide:p}=t;h.HYPELAB_NATIVE_PLACEMENT_SLUG=l,h.HYPELAB_SMALL_PLACEMENT_SLUG=m,h.HYPELAB_HIGH_PLACEMENT_SLUG=A,h.HYPELAB_WIDE_PLACEMENT_SLUG=p,h.HYPELAB_ADS_WINDOW_URL=n,h.TKEY_INPAGE_AD_URL=i,h.SWAP_TKEY_URL=r,h.EXTERNAL_ADS_ACTIVITY_MESSAGE_TYPE=o,h.getPersonaIframeURL=d,h.getAdsStackIframeURL=a,h.EXTENSION_VERSION=s,h.TEMPLE_PASSPHRASE=c;};var D=[{source:{providerName:"HypeLab",native:!1,size:"wide"},dimensions:{width:728,height:90,minContainerWidth:701,minContainerHeight:60,maxContainerWidth:1/0,maxContainerHeight:300}},{source:{providerName:"Temple"},dimensions:{width:728,height:90,minContainerWidth:701,minContainerHeight:60,maxContainerWidth:1/0,maxContainerHeight:300}},{source:{providerName:"Persona",shape:"medium"},dimensions:{width:600,height:160,minContainerWidth:600,minContainerHeight:80,maxContainerWidth:800,maxContainerHeight:300}},{source:{providerName:"HypeLab",native:!1,size:"high"},dimensions:{width:300,height:250,minContainerWidth:300,minContainerHeight:170,maxContainerWidth:700,maxContainerHeight:1/0}},{source:{providerName:"Persona",shape:"squarish"},dimensions:{width:300,height:250,minContainerWidth:300,minContainerHeight:170,maxContainerWidth:700,maxContainerHeight:1/0}},{source:{providerName:"HypeLab",native:!1,size:"small",shouldNotUseStrictContainerLimits:!0},dimensions:{width:320,height:50,minContainerWidth:230,minContainerHeight:32,maxContainerWidth:420,maxContainerHeight:130}},{source:{providerName:"Persona",shape:"regular",shouldNotUseStrictContainerLimits:!0},dimensions:{width:321,height:101,minContainerWidth:230,minContainerHeight:32,maxContainerWidth:420,maxContainerHeight:130}}],we=(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 N="twa",U="twa-native",J="twa-sibling-replacement";var Z="adRenderStart",ee="resize",O="ready",q="error";var C=/[\d.]+(px)?$/,k=`[${N}]`,xe=`[${N}]:not([${U}])`,_e=`[${U}]`,V=e=>!!e.closest(k),Y=e=>{var t;return !!((t=e.previousElementSibling)!=null&&t.getAttribute(J))},te=e=>{let t=getComputedStyle(e),{x:n,right:i,width:r,height:o}=e.getBoundingClientRect(),d={width:r,height:o},a=["width","height"];for(let s of a){let c=t[s],m=e.getAttribute(s)||c;C.test(m)&&(d[s]=Number(m.replace("px",""))),s==="width"&&n<0?d.width+=n:s==="width"&&i>window.innerWidth&&(d.width=window.innerWidth-n);}return d},H=(e,t,n=document)=>e?t?[...n.querySelectorAll(e)]:[n.querySelector(e)].filter(i=>!!i):[],W=(e,t)=>{let n=e;for(let i=0;i<t;i++){let r=n.parentElement;if(!r)return null;n=r;}return n},Ie=D.length-2,Le=(e,t,n,i)=>e<2&&t<2?[]:i?[we(e,t)]:D.reduce((r,{dimensions:o},d)=>{let{minContainerWidth:a,maxContainerWidth:s,minContainerHeight:c,maxContainerHeight:l,width:m}=o,A=!1;switch(n){case"permanent":A=d===Ie||e>=m&&(t>=c||t<2);break;case"slot-replacement":A=d===Ie||e>=a&&(t>=c||t<2);break;default:A=e>=a&&t>=c&&e<=s&&t<=l;}return A&&r.push(d),r},[]);var ve=(e,t,n)=>g(void 0,null,function*(){let{isMultiple:i,cssString:r,parentDepth:o}=e.parentSelector,d=H(r,i).map(a=>W(a,o)).filter(a=>!!a);return yield Promise.all(d.map(a=>g(void 0,null,function*(){yield M(0),qe(a,e,t,n);}))),d}),qe=(e,t,n,i)=>{var Ee;let he=t,{shouldUseDivWrapper:r,divWrapperStyle:o,wrapperStyle:d,elementStyle:a,adSelector:s,insertionIndex:c,insertBeforeSelector:l,insertAfterSelector:m,insertionsCount:A=1,elementToMeasureSelector:p,stylesOverrides:u,shouldHideOriginal:E=!1,isNative:R,urlRegexes:y,parentSelector:T}=he,P=I(he,["shouldUseDivWrapper","divWrapperStyle","wrapperStyle","elementStyle","adSelector","insertionIndex","insertBeforeSelector","insertAfterSelector","insertionsCount","elementToMeasureSelector","stylesOverrides","shouldHideOriginal","isNative","urlRegexes","parentSelector"]),_=P.wrapperType?d:r?o:{display:"contents"},{isMultiple:w,cssString:L,parentDepth:b}=s,ne=H(R?_e:xe,!0,e).reduce((f,v)=>f.some($=>$.contains(v)||v.contains($))?f:[...f,v],[]).length,Q=A-ne;if(H(L,w,e).map(f=>W(f,b)).filter(f=>Te(f)&&!V(f)).forEach(f=>{var $,fe;let v=window.getComputedStyle(f).display==="none";if(Q<=0)(!E||!v)&&i.push({type:E?"hide-element":"remove-element",element:f});else {let se=(($=f.parentElement)==null?void 0:$.children.length)===1?f.parentElement:f;p&&(se=(fe=document.querySelector(p))!=null?fe:se);let Ve=S({type:"replace-element",element:f,wrapperStyle:_,elementStyle:a,stylesOverrides:u},P),ye={type:"hide-element",element:f},Ye=S({type:"simple-insert-ad",wrapperStyle:_,elementStyle:a,parent:f.parentElement,insertionIndex:Array.from(f.parentElement.children).indexOf(f),isSiblingReplacement:!0,stylesOverrides:u},P),z=[],Re=Y(f);E&&Re&&!v?z=[ye]:E&&!Re?z=[ye,Ye]:E||(z=[Ve]),z.length>0&&n(se,"permanent",R,...z)&&Q--;}}),Q<=0)return;let G=-1,pe=e,re=e,ue=l||m;if(ue){let f=e.querySelector(ue),v=f==null?void 0:f.parentElement;f&&v&&(pe=v,G=Array.from(e.children).indexOf(f)+(l?0:1),re=p&&document.querySelector(p)||f);}else {let f=c!=null?c:0;G=f<0?Math.max(e.children.length+f,0):Math.min(f,e.children.length),re=p&&document.querySelector(p)||((Ee=e.children[G])!=null?Ee:e);}if(G!==-1){let f=S({type:"simple-insert-ad",wrapperStyle:_,elementStyle:a,parent:pe,insertionIndex:G,isSiblingReplacement:!1,stylesOverrides:u},P);n(re,"permanent",R,...Array(Q).fill(f));}};var Xe=["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"],Me=(e,t,n)=>g(void 0,null,function*(){let i=e.map(({selector:r,parentDepth:o})=>H(r,!0).reduce((d,a)=>{var R;let s=(R=W(a,o))!=null?R:a,c=d.findIndex(y=>y.contains(s)),l=s.parentElement&&window.getComputedStyle(s.parentElement),{width:m,height:A}=te(s),p=n.some(y=>{var T;return y.type==="replace-all-children"||y.type==="simple-insert-ad"?y.parent.contains(s)||s.contains(y.parent):((T=y.element.parentElement)==null?void 0:T.contains(s))||s.contains(y.element)}),u=(l==null?void 0:l.display)==="none"||(l==null?void 0:l.visibility)==="hidden",E=c>=0&&d[c]instanceof HTMLAnchorElement;return p||m===0||A===0||u||E||(c>=0?d.splice(c,1,s):d.some(y=>y.contains(s))||d.push(s)),d},[])).flat();yield Promise.all(i.map(r=>g(void 0,null,function*(){var c,l,m,A,p,u,E,R;yield M(0);let o=r.parentElement,{width:d,height:a}=window.getComputedStyle(r),s=C.test(d)&&C.test(a)?r:(l=(c=o==null?void 0:o.closest("div, article, aside, footer, header"))!=null?c:(o==null?void 0:o.tagName.toLowerCase())==="body"?void 0:o)!=null?l:r;if(!V(r)&&!r.querySelector(k)&&!n.some(y=>y.type==="simple-insert-ad"?!1:y.type==="replace-all-children"?y.parent.contains(r):y.element===r)){let y=(m=r.getAttribute("style"))!=null?m:"",T=Object.fromEntries(y.split(";").filter(Boolean).map(F=>F.split(":").map(ne=>ne.trim())));if((A=T.width)!=null&&A.match(/^0[a-z]/)||(p=T.height)!=null&&p.match(/^0[a-z]/))return;let P=window.getComputedStyle(r),_=S(S({},Object.fromEntries(Xe.map(F=>[F,P.getPropertyValue(F)]))),T),w={type:"hide-element",element:r},L={type:"simple-insert-ad",wrapperStyle:_,parent:(u=r.parentElement)!=null?u:document.body,insertionIndex:Array.from((R=(E=r.parentElement)==null?void 0:E.children)!=null?R:[]).indexOf(r),isSiblingReplacement:!0},b=Y(r)?window.getComputedStyle(r).display==="none"?[]:[w]:[w,L];t(s,"provider-replacement",!1,...b);}})));});var be=(e,t,n)=>g(void 0,null,function*(){let{cssString:i,isMultiple:r}=e.selector,o=H(i,r);yield Promise.all(o.map(d=>g(void 0,null,function*(){yield M(0),Ke(d,e,t,n);})));}),Ke=(e,t,n,i)=>{let{selector:{shouldUseDivWrapper:r,parentDepth:o,divWrapperStyle:d},stylesOverrides:a,shouldHideOriginal:s,isNative:c=!1}=t,l=W(e,o);if(!l||n.some(p=>p.contains(l))||V(l)||l.querySelector(k))return;let m={shouldUseDivWrapper:r,wrapperStyle:d},A;if(r&&s){let p=l.parentElement,u=window.getComputedStyle(l).display==="none",E=S({type:"simple-insert-ad",parent:p,insertionIndex:Array.from(p.children).indexOf(l),stylesOverrides:a==null?void 0:a.map(T=>{var P=T,{parentDepth:R}=P,y=I(P,["parentDepth"]);return x(S({},y),{parentDepth:R-1})}),isSiblingReplacement:!0},m);A=[],u||A.push({type:"hide-element",element:l}),Y(l)||A.push(E);}else if(r)A=[S({type:"replace-element",element:l,stylesOverrides:a==null?void 0:a.map(R=>{var y=R,{parentDepth:u}=y,E=I(y,["parentDepth"]);return x(S({},E),{parentDepth:u-1})})},m)];else if(s){let p={type:"simple-insert-ad",parent:l,insertionIndex:0,stylesOverrides:a,isSiblingReplacement:!0,wrapperStyle:{display:"contents"}};A=Array.from(l.children).filter(u=>window.getComputedStyle(u).display!=="none").map(u=>({type:"hide-element",element:u})),l.querySelector(k)||A.push(p);}else A=[{type:"replace-all-children",parent:l,stylesOverrides:a,wrapperStyle:{display:"contents"}}];A.length>0&&i(l,"slot-replacement",c,...A);};var Qe=i=>g(void 0,[i],function*({providersSelectors:e,adPlacesRules:t,permanentAdPlacesRules:n}){let r=[],o=(a,s,c,...l)=>{let{width:m,height:A}=te(a),p=Le(m,A,s,c);return p.length?(r.push(...l.map(u=>u.type==="hide-element"||u.type==="remove-element"?u:x(S({},u),{adsMetadata:p}))),!0):!1},d=[];return yield Promise.all(n.map(a=>g(void 0,null,function*(){yield M(0),d=d.concat(yield ve(a,o,r));}))),yield Promise.all(t.map(a=>g(void 0,null,function*(){yield M(0),yield be(a,d,o);}))),yield Me(e,o,r),r});var oe=(r=>(r.Optimal="Optimal",r.HypeLab="HypeLab",r.Persona="Persona",r.Temple="Temple Wallet",r))(oe||{});var ae=new Set,He=new Set,De=new Set,Ce=e=>g(void 0,null,function*(){let t=e.id;if(!ae.has(t))return ae.add(t),new Promise((n,i)=>{let r=o=>{var d,a,s;if(o.source===e.contentWindow)try{let c=typeof o.data=="string"?JSON.parse(o.data):o.data;if(c.id!==t)return;let l=e.offsetWidth-e.clientWidth,m=e.offsetHeight-e.clientHeight;switch(c.type){case O:n(c.adMetadata.source.providerName);break;case q:window.removeEventListener("message",r),e.style.display="none",i(new Error((d=c.reason)!=null?d:"Unknown error"));break;case Z:let{dimensions:A}=c.adMetadata,{width:p,height:u}=A;p>0&&u>0&&((a=e.style.width)!=null&&a.endsWith("%")||(e.style.width=`${A.width}px`),e.style.height=`${A.height}px`);break;case ee:let{width:E,height:R}=c;(s=e.style.width)!=null&&s.endsWith("%")||(e.style.width=`${E+l}px`),e.style.height=`${R+m}px`;}}catch(c){console.error("Observing error:",c);}};window.addEventListener("message",r);}).then(n=>{if(He.has(t))return;He.add(t),Ze(e)?We(t,n):Je(e,n);}).catch(n=>{throw console.error(n),n}).finally(()=>void ae.delete(t))}),Je=(e,t)=>{let n=new IntersectionObserver(i=>{i.some(r=>r.isIntersecting)&&(We(e.id,t),n.disconnect());},{threshold:.5});n.observe(e);},We=(e,t)=>{if(De.has(e))return;De.add(e);let n=window.parent.location.href;je__default.default.runtime.sendMessage({type:h.EXTERNAL_ADS_ACTIVITY_MESSAGE_TYPE,url:n,provider:oe[t]}).catch(i=>void console.error(i));},Ze=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),o=Math.min(Math.max(0,t.y),n.height),d=Math.min(Math.max(0,t.y+t.height),n.height),a=t.width*t.height;return (r-i)*(d-o)/a>=.5};var le=(e,t)=>{for(let n in t)e.style.setProperty(n,t[n]);};var tt=(e,t)=>{["width","height"].forEach(i=>{var o;let r=(o=e.style[i])!=null?o:"";C.test(r)&&parseInt(r,10)<t[i]&&e.style.removeProperty(i);});},Be=e=>e.reduce((t,n)=>{let i=parseInt(n,10);return isNaN(i)&&C.test(n)?t:t+i},0),nt=(e,t,n,i)=>g(void 0,null,function*(){let{elementStyle:r={},stylesOverrides:o=[],adsMetadata:d,wrapperType:a}=e;o.sort((u,E)=>u.parentDepth-E.parentDepth);let s,c=nanoid.nanoid(),l=document.createElement("iframe");l.src=h.getAdsStackIframeURL(c,e.adsMetadata,window.location.href),l.id=c;let m=e.adsMetadata[0],{dimensions:A}=typeof m=="number"?D[m]:m;l.style.width=a==="tbody"?"100%":`${A.width}px`,l.style.height=`${A.height}px`,l.style.border="none";for(let u in r)l.style.setProperty(u,r[u]);switch(l.setAttribute(N,"true"),tt(t,A),n.appendChild(l),e.type){case"replace-all-children":s=e.parent,e.parent.innerHTML="",e.parent.appendChild(t);break;case"replace-element":s=e.element.parentElement,e.element.replaceWith(t);break;default:e.isSiblingReplacement&&t.setAttribute(J,"true"),s=e.parent,e.parent.insertBefore(t,e.parent.children[e.insertionIndex]);break}if(a!=="tbody"){let{borderLeftWidth:u,borderRightWidth:E,borderTopWidth:R,borderBottomWidth:y}=window.getComputedStyle(l),{borderLeftWidth:T,borderRightWidth:P,borderTopWidth:_,borderBottomWidth:w}=window.getComputedStyle(t),L=Be([u,E,T,P]),b=Be([R,y,_,w]);l.style.width=`${A.width-L}px`,l.style.height=`${A.height-b}px`;}Ce(l).catch(i);let p=0;o.forEach(({parentDepth:u,style:E})=>{for(;u>p&&s;)s=s.parentElement,p++;s&&le(s,E);});}),Ue=e=>g(void 0,null,function*(){let{wrapperStyle:t={},adsMetadata:n,wrapperType:i="div",colsAfter:r=0,colsBefore:o=0,colspan:d=1}=e,a=n.every(m=>typeof m=="object"),s,c;if(i==="div")s=document.createElement("div"),c=s;else {s=document.createElement("tbody");let m=document.createElement("tr");s.appendChild(m);for(let p=0;p<o;p++)m.appendChild(document.createElement("td"));let A=document.createElement("td");A.colSpan=d,m.appendChild(A),c=A;for(let p=0;p<r;p++)m.appendChild(document.createElement("td"));}s.setAttribute(N,"true"),a&&s.setAttribute(U,"true"),le(s,t);let l=()=>{let m=document.createElement("div");m.setAttribute(N,"true"),a&&m.setAttribute(U,"true"),m.style.display="none",s.replaceWith(m);};yield nt(e,s,c,m=>{console.error("Failed to render ads",m),l();}).catch(m=>{throw console.error("Inserting an ad attempt error:",m),l(),m});});var rt=e=>Promise.allSettled(e.map(t=>g(void 0,null,function*(){t.type==="remove-element"?t.element.remove():t.type==="hide-element"?t.element.style.setProperty("display","none"):yield Ue(t);})));var de=(e,t)=>{let n=document.createElement("div");n.style.width=`${e}px`,n.style.height=`${t}px`;let i=document.createElement("div");i.style.width=`${e}px`,i.style.height=`${t}px`,n.appendChild(i);let r=document.createElement("a");r.href=h.SWAP_TKEY_URL,r.target="_blank",r.rel="noopener noreferrer",r.style.width="100%",r.style.height="100%",i.appendChild(r);let o=document.createElement("img");return o.src=h.TKEY_INPAGE_AD_URL,o.style.width="100%",o.style.height="100%",r.appendChild(o),{element:n}};var ce=(e,t,n)=>{let{width:i,height:r}=t,o=document.createElement("iframe");return o.src=it(e,n,i,r,o.id),o.style.width=e.native?"100%":`${i}px`,o.style.height=`${r}px`,o.style.border="none",{element:o}},it=(e,t,n,i,r)=>{let o,d,a;if(e.native)a=h.HYPELAB_NATIVE_PLACEMENT_SLUG,o=360,d=110;else switch(e.size){case"small":o=320,d=50,a=h.HYPELAB_SMALL_PLACEMENT_SLUG;break;case"high":o=300,d=250,a=h.HYPELAB_HIGH_PLACEMENT_SLUG;break;case"wide":o=728,d=90,a=h.HYPELAB_WIDE_PLACEMENT_SLUG;break}let s=new URL(h.HYPELAB_ADS_WINDOW_URL);return e.native?s.searchParams.set("vh",String(i!=null?i:d)):s.searchParams.set("w",String(n!=null?n:o)),s.searchParams.set("h",String(i!=null?i:d)),s.searchParams.set("p",a),s.searchParams.set("o",ot(t)),r&&s.searchParams.set("id",r),s.toString()},ot=e=>cryptoJs.AES.encrypt(e,h.TEMPLE_PASSPHRASE).toString();var me=(e,t,{width:n,height:i})=>{let r=document.createElement("iframe");return r.src=h.getPersonaIframeURL(e,t),r.id=e,r.style.width=`${n}px`,r.style.height=`${i}px`,r.style.border="none",{element:r}};var K=e=>window.parent.postMessage(JSON.stringify(e),"*"),Oe=(e,t,n)=>g(void 0,null,function*(){if(t.length===0){K({id:e,type:q,reason:"No more ads to render"});return}let[i,...r]=t,o=typeof i=="number"?D[i]:i;K({id:e,type:Z,adMetadata:o});let{source:d,dimensions:a}=o,s,c=!0;switch(d.providerName){case"Temple":s=de(a.width,a.height);break;case"HypeLab":s=ce(d,a,n),d.native&&(c=!1);break;default:s=me(e,d.shape,a);}let{element:l}=s,m=document.getElementById("root"),A=document.getElementById("temple-label");if(m.replaceChildren(l),c?A.setAttribute("active",""):A.removeAttribute("active"),l instanceof HTMLIFrameElement)return new Promise((p,u)=>{let E=setTimeout(()=>{window.removeEventListener("message",y),u(new Error(`Timeout exceeded for ${e}, ad source: ${JSON.stringify(d)}`));},1e4),R=!1,y=T=>{var P,_;if(T.source===l.contentWindow)try{let w=typeof T.data=="string"?JSON.parse(T.data):T.data;switch(w.type){case O:R||(R=!0,K({id:e,type:O,adMetadata:o}),clearTimeout(E),p());break;case q:window.removeEventListener("message",y),clearTimeout(E),u(new Error((P=w.reason)!=null?P:"Unknown error"));break;case ee:let{width:L,height:b}=w;L>0&&b>0&&((_=l.style.width)!=null&&_.endsWith("%")||(l.style.width=`${L}px`),l.style.height=`${b}px`,K(x(S({},w),{id:e})));}}catch(w){console.error("Observing error:",w);}};window.addEventListener("message",y);}).catch(p=>(console.error(p),Oe(e,r,n)));K({id:e,type:O,adMetadata:o});});var lt=(e,t)=>{let{adPlacesRulesForAllDomains:n,providersRulesForAllDomains:i,providersSelectors:r,providersToReplaceAtAllSites:o,permanentAdPlacesRulesForAllDomains:d,permanentNativeAdPlacesRulesForAllDomains:a={},adsReplaceUrlsBlacklist:s=[],timestamp:c}=t,{hostname:l,href:m}=e;if(s.some(u=>new RegExp(u).test(m)))return {adPlacesRules:[],permanentAdPlacesRules:[],providersSelectors:[],timestamp:c};let A=m.replace(/#.*$/,""),p=u=>{let E=u.source.includes("#")?m:A;return u.test(E)};return {adPlacesRules:dt(l,p,n),permanentAdPlacesRules:ct(l,p,d,a),providersSelectors:At(l,p,i,r,o),timestamp:c}},dt=(e,t,n)=>{var o;return ((o=n[e])!=null?o:[]).map(s=>{var c=s,{urlRegexes:d}=c,a=I(c,["urlRegexes"]);return x(S({},a),{urlRegexes:d.map(l=>new RegExp(l))})}).reduce((d,l)=>{var m=l,{urlRegexes:a,selector:s}=m,c=I(m,["urlRegexes","selector"]);if(!a.some(t))return d;let E=s,{cssString:A}=E,p=I(E,["cssString"]),u=d.findIndex(T=>{var P=T,{selector:R}=P,y=I(P,["selector"]);let L=R,w=I(L,["cssString"]);return lodash.isEqual(p,w)&&lodash.isEqual(c,y)});return u===-1?d.push(S({selector:s},c)):d[u].selector.cssString+=", ".concat(A),d},[])},ct=(e,t,n,i={})=>{var a,s;let r=(a=n[e])!=null?a:[],o=(s=i[e])!=null?s:[];return r.map(m=>{var A=m,{urlRegexes:c}=A,l=I(A,["urlRegexes"]);return x(S({},l),{urlRegexes:c.map(p=>new RegExp(p)),isNative:!1})}).concat(o.map(m=>{var A=m,{urlRegexes:c}=A,l=I(A,["urlRegexes"]);return x(S({},l),{urlRegexes:c.map(p=>new RegExp(p)),isNative:!0})})).filter(({urlRegexes:c})=>c.some(t))};function mt(e){let t="";return e.forEach(n=>{t+=n+", ";}),t&&(t=t.slice(0,-2)),t}var At=(e,t,n,i,r)=>{var l;let d=((l=n[e])!=null?l:[]).map(p=>{var u=p,{urlRegexes:m}=u,A=I(u,["urlRegexes"]);return x(S({},A),{urlRegexes:m.map(E=>new RegExp(E))})}).filter(({urlRegexes:m})=>m.some(t)),a=new Set,s={},c=m=>{var p;if(a.has(m))return;((p=i[m])!=null?p:[]).forEach(u=>{let{selector:E,parentDepth:R}=typeof u=="string"?{selector:u,parentDepth:0}:u;s[R]||(s[R]=new Set),s[R].add(E);}),a.add(m);};return r.forEach(c),d.forEach(({providers:m})=>m.forEach(c)),Object.entries(s).map(([m,A])=>({parentDepth:Number(m),selector:mt(A)}))};var B=e=>(...t)=>g(void 0,null,function*(){let{data:n}=yield e(...t);return n}),Ae=class{constructor(t){this.getAdPlacesRulesForAllDomains=B(()=>this.api.get("/slise-ad-rules/ad-places",this.getAdVersionRequestConfig()));this.getProvidersToReplaceAtAllSites=B(()=>this.api.get("/slise-ad-rules/providers/all-sites"));this.getProvidersRulesForAllDomains=B(()=>this.api.get("/slise-ad-rules/providers/by-sites"));this.getSelectorsForAllProviders=B(()=>this.api.get("/slise-ad-rules/providers",this.getAdVersionRequestConfig()));this.getPermanentAdPlacesRulesForAllDomains=B(()=>this.api.get("/slise-ad-rules/ad-places/permanent",this.getAdVersionRequestConfig()));this.getPermanentNativeAdPlacesRulesForAllDomains=B(()=>this.api.get("/slise-ad-rules/ad-places/permanent-native",this.getAdVersionRequestConfig()));this.getAdsReplaceUrlsBlacklist=B(()=>this.api.get("/slise-ad-rules/replace-urls-blacklist",this.getAdVersionRequestConfig()));this.getAllRules=()=>g(this,null,function*(){let[t,n,i,r,o,d,a]=yield Promise.all([this.getAdPlacesRulesForAllDomains(),this.getProvidersRulesForAllDomains(),this.getSelectorsForAllProviders(),this.getProvidersToReplaceAtAllSites(),this.getPermanentAdPlacesRulesForAllDomains(),this.getPermanentNativeAdPlacesRulesForAllDomains(),this.getAdsReplaceUrlsBlacklist()]);return {adPlacesRulesForAllDomains:t,providersRulesForAllDomains:n,providersSelectors:i,providersToReplaceAtAllSites:r,permanentAdPlacesRulesForAllDomains:o,permanentNativeAdPlacesRulesForAllDomains:d,adsReplaceUrlsBlacklist:a,timestamp:Date.now()}});this.api=ut__default.default.create({baseURL:new URL("/api",t).href,adapter:pt__default.default});}getAdVersionRequestConfig(){return {params:{extVersion:h.EXTENSION_VERSION}}}};
67
17
 
68
- // src/utils.ts
69
- var isTruthy = (value) => Boolean(value);
70
- var DEFAULT_DELAY = 300;
71
- var delay = (ms = DEFAULT_DELAY) => new Promise((res) => setTimeout(res, ms));
72
-
73
- // src/ads-configuration.ts
74
- var AdsConfiguration = class {
75
- };
76
- AdsConfiguration.HYPELAB_NATIVE_PLACEMENT_SLUG = "";
77
- AdsConfiguration.HYPELAB_SMALL_PLACEMENT_SLUG = "";
78
- AdsConfiguration.HYPELAB_HIGH_PLACEMENT_SLUG = "";
79
- AdsConfiguration.HYPELAB_WIDE_PLACEMENT_SLUG = "";
80
- AdsConfiguration.HYPELAB_ADS_WINDOW_URL = "";
81
- AdsConfiguration.TKEY_INPAGE_AD_URL = "";
82
- AdsConfiguration.SWAP_TKEY_URL = "";
83
- AdsConfiguration.EXTERNAL_ADS_ACTIVITY_MESSAGE_TYPE = "";
84
- AdsConfiguration.getPersonaIframeURL = () => "";
85
- AdsConfiguration.getAdsStackIframeURL = () => "";
86
- var configureAds = (config) => {
87
- const {
88
- hypelab,
89
- hypelabAdsWindowUrl,
90
- tkeyInpageAdUrl,
91
- swapTkeyUrl,
92
- externalAdsActivityMessageType,
93
- getPersonaIframeURL,
94
- getAdsStackIframeURL,
95
- extVersion,
96
- templePassphrase
97
- } = config;
98
- const {
99
- native: hypelabNativePlacementSlug,
100
- small: hypelabSmallPlacementSlug,
101
- regular: hypelabHighPlacementSlug,
102
- wide: hypelabWidePlacementSlug
103
- } = hypelab;
104
- AdsConfiguration.HYPELAB_NATIVE_PLACEMENT_SLUG = hypelabNativePlacementSlug;
105
- AdsConfiguration.HYPELAB_SMALL_PLACEMENT_SLUG = hypelabSmallPlacementSlug;
106
- AdsConfiguration.HYPELAB_HIGH_PLACEMENT_SLUG = hypelabHighPlacementSlug;
107
- AdsConfiguration.HYPELAB_WIDE_PLACEMENT_SLUG = hypelabWidePlacementSlug;
108
- AdsConfiguration.HYPELAB_ADS_WINDOW_URL = hypelabAdsWindowUrl;
109
- AdsConfiguration.TKEY_INPAGE_AD_URL = tkeyInpageAdUrl;
110
- AdsConfiguration.SWAP_TKEY_URL = swapTkeyUrl;
111
- AdsConfiguration.EXTERNAL_ADS_ACTIVITY_MESSAGE_TYPE = externalAdsActivityMessageType;
112
- AdsConfiguration.getPersonaIframeURL = getPersonaIframeURL;
113
- AdsConfiguration.getAdsStackIframeURL = getAdsStackIframeURL;
114
- AdsConfiguration.EXTENSION_VERSION = extVersion;
115
- AdsConfiguration.TEMPLE_PASSPHRASE = templePassphrase;
116
- };
117
-
118
- // src/ads-meta.ts
119
- var BANNER_ADS_META = [
120
- {
121
- source: {
122
- providerName: "HypeLab",
123
- native: false,
124
- size: "wide"
125
- },
126
- dimensions: {
127
- width: 728,
128
- height: 90,
129
- minContainerWidth: 701,
130
- minContainerHeight: 60,
131
- maxContainerWidth: Infinity,
132
- maxContainerHeight: 300
133
- }
134
- },
135
- // {
136
- // source: {
137
- // providerName: 'Persona',
138
- // shape: 'wide'
139
- // },
140
- // dimensions: {
141
- // width: 970,
142
- // height: 90,
143
- // minContainerWidth: 900,
144
- // minContainerHeight: 60,
145
- // maxContainerWidth: Infinity,
146
- // maxContainerHeight: 300
147
- // }
148
- // },
149
- {
150
- source: {
151
- providerName: "Temple"
152
- },
153
- dimensions: {
154
- width: 728,
155
- height: 90,
156
- minContainerWidth: 701,
157
- minContainerHeight: 60,
158
- maxContainerWidth: Infinity,
159
- maxContainerHeight: 300
160
- }
161
- },
162
- {
163
- source: {
164
- providerName: "Persona",
165
- shape: "medium"
166
- },
167
- dimensions: {
168
- width: 600,
169
- height: 160,
170
- minContainerWidth: 600,
171
- minContainerHeight: 80,
172
- maxContainerWidth: 800,
173
- maxContainerHeight: 300
174
- }
175
- },
176
- {
177
- source: {
178
- providerName: "HypeLab",
179
- native: false,
180
- size: "high"
181
- },
182
- dimensions: {
183
- width: 300,
184
- height: 250,
185
- minContainerWidth: 300,
186
- minContainerHeight: 170,
187
- maxContainerWidth: 700,
188
- maxContainerHeight: Infinity
189
- }
190
- },
191
- {
192
- source: {
193
- providerName: "Persona",
194
- shape: "squarish"
195
- },
196
- dimensions: {
197
- width: 300,
198
- height: 250,
199
- minContainerWidth: 300,
200
- minContainerHeight: 170,
201
- maxContainerWidth: 700,
202
- maxContainerHeight: Infinity
203
- }
204
- },
205
- {
206
- source: {
207
- providerName: "HypeLab",
208
- native: false,
209
- size: "small",
210
- shouldNotUseStrictContainerLimits: true
211
- },
212
- dimensions: {
213
- width: 320,
214
- height: 50,
215
- minContainerWidth: 230,
216
- minContainerHeight: 32,
217
- maxContainerWidth: 420,
218
- maxContainerHeight: 130
219
- }
220
- },
221
- {
222
- source: {
223
- providerName: "Persona",
224
- shape: "regular",
225
- shouldNotUseStrictContainerLimits: true
226
- },
227
- dimensions: {
228
- width: 321,
229
- height: 101,
230
- minContainerWidth: 230,
231
- minContainerHeight: 32,
232
- maxContainerWidth: 420,
233
- maxContainerHeight: 130
234
- }
235
- }
236
- ];
237
- var buildHypeLabNativeMeta = (containerWidth, containerHeight) => ({
238
- source: {
239
- providerName: "HypeLab",
240
- native: true,
241
- slug: AdsConfiguration.HYPELAB_NATIVE_PLACEMENT_SLUG
242
- },
243
- dimensions: {
244
- width: Math.max(160, containerWidth),
245
- height: Math.max(16, containerHeight),
246
- minContainerWidth: 2,
247
- minContainerHeight: 2,
248
- maxContainerWidth: Infinity,
249
- maxContainerHeight: Infinity
250
- }
251
- });
252
-
253
- // src/constants.ts
254
- var TEMPLE_WALLET_AD_ATTRIBUTE_NAME = "twa";
255
- var TEMPLE_WALLET_NATIVE_AD_ATTRIBUTE_NAME = "twa-native";
256
- var SIBLING_REPLACEMENT_ATTRIBUTE_NAME = "twa-sibling-replacement";
257
- var AD_SEEN_THRESHOLD = 0.5;
258
- var AD_RENDER_START_MESSAGE_TYPE = "adRenderStart";
259
- var AD_RESIZE_MESSAGE_TYPE = "resize";
260
- var AD_READY_MESSAGE_TYPE = "ready";
261
- var AD_ERROR_MESSAGE_TYPE = "error";
262
- var AD_VARIANT_READY_TIMEOUT = 1e4;
263
-
264
- // src/ads-actions/helpers.ts
265
- var PX_VALUE_REGEX = /[\d.]+(px)?$/;
266
- var ourAdQuerySelector = `[${TEMPLE_WALLET_AD_ATTRIBUTE_NAME}]`;
267
- var ourBannerAdQuerySelector = `[${TEMPLE_WALLET_AD_ATTRIBUTE_NAME}]:not([${TEMPLE_WALLET_NATIVE_AD_ATTRIBUTE_NAME}])`;
268
- var ourNativeAdQuerySelector = `[${TEMPLE_WALLET_NATIVE_AD_ATTRIBUTE_NAME}]`;
269
- var elementIsOurAd = (element) => Boolean(element.closest(ourAdQuerySelector));
270
- var prevBannerSiblingIsReplacement = (banner) => {
271
- var _a;
272
- return Boolean((_a = banner.previousElementSibling) == null ? void 0 : _a.getAttribute(SIBLING_REPLACEMENT_ATTRIBUTE_NAME));
273
- };
274
- var getFinalSize = (element) => {
275
- const elementStyle = getComputedStyle(element);
276
- const { x, right, width: rectWidth, height: rectHeight } = element.getBoundingClientRect();
277
- const size = { width: rectWidth, height: rectHeight };
278
- const dimensions = ["width", "height"];
279
- for (const dimension of dimensions) {
280
- const rawDimensionFromStyle = elementStyle[dimension];
281
- const rawDimensionFromAttribute = element.getAttribute(dimension);
282
- const rawDimension = rawDimensionFromAttribute || rawDimensionFromStyle;
283
- if (PX_VALUE_REGEX.test(rawDimension)) {
284
- size[dimension] = Number(rawDimension.replace("px", ""));
285
- }
286
- if (dimension === "width" && x < 0) {
287
- size.width += x;
288
- } else if (dimension === "width" && right > window.innerWidth) {
289
- size.width = window.innerWidth - x;
290
- }
291
- }
292
- return size;
293
- };
294
- var applyQuerySelector = (querySelector, isMultiple, element = document) => {
295
- if (!querySelector) {
296
- return [];
297
- }
298
- return isMultiple ? [...element.querySelectorAll(querySelector)] : [element.querySelector(querySelector)].filter((el) => Boolean(el));
299
- };
300
- var getParentOfDepth = (element, depth) => {
301
- let parent = element;
302
- for (let i = 0; i < depth; i++) {
303
- const nextParent = parent.parentElement;
304
- if (!nextParent) {
305
- return null;
306
- }
307
- parent = nextParent;
308
- }
309
- return parent;
310
- };
311
- var smallestBannerAdsMetaIndex = BANNER_ADS_META.length - 2;
312
- var pickAdsToDisplay = (containerWidth, containerHeight, adType, adIsNative) => {
313
- if (containerWidth < 2 && containerHeight < 2) {
314
- return [];
315
- }
316
- if (adIsNative) {
317
- return [buildHypeLabNativeMeta(containerWidth, containerHeight)];
318
- }
319
- return BANNER_ADS_META.reduce((acc, { dimensions }, i) => {
320
- const { minContainerWidth, maxContainerWidth, minContainerHeight, maxContainerHeight, width } = dimensions;
321
- let matches = false;
322
- switch (adType) {
323
- case "permanent" /* Permanent */:
324
- matches = i === smallestBannerAdsMetaIndex || containerWidth >= width && (containerHeight >= minContainerHeight || containerHeight < 2);
325
- break;
326
- case "slot-replacement" /* SlotReplacement */:
327
- matches = i === smallestBannerAdsMetaIndex || containerWidth >= minContainerWidth && (containerHeight >= minContainerHeight || containerHeight < 2);
328
- break;
329
- default:
330
- matches = containerWidth >= minContainerWidth && containerHeight >= minContainerHeight && containerWidth <= maxContainerWidth && containerHeight <= maxContainerHeight;
331
- }
332
- if (matches) {
333
- acc.push(i);
334
- }
335
- return acc;
336
- }, []);
337
- };
338
-
339
- // src/ads-actions/process-permanent-rule.ts
340
- var processPermanentAdPlacesRule = (rule, addActionsIfAdResolutionAvailable, result) => __async(void 0, null, function* () {
341
- const {
342
- isMultiple: shouldSearchForManyParents,
343
- cssString: parentCssString,
344
- parentDepth: parentParentDepth
345
- } = rule.parentSelector;
346
- const parents = applyQuerySelector(parentCssString, shouldSearchForManyParents).map((element) => getParentOfDepth(element, parentParentDepth)).filter((value) => Boolean(value));
347
- yield Promise.all(
348
- parents.map((parent) => __async(void 0, null, function* () {
349
- yield delay(0);
350
- processPermanentAdsParent(parent, rule, addActionsIfAdResolutionAvailable, result);
351
- }))
352
- );
353
- return parents;
354
- });
355
- var processPermanentAdsParent = (parent, rule, addActionsIfAdResolutionAvailable, result) => {
356
- var _b;
357
- const _a = rule, {
358
- shouldUseDivWrapper,
359
- divWrapperStyle: originalDivWrapperStyle,
360
- wrapperStyle: originalWrapperStyle,
361
- elementStyle,
362
- adSelector,
363
- insertionIndex,
364
- insertBeforeSelector,
365
- insertAfterSelector,
366
- insertionsCount = 1,
367
- elementToMeasureSelector,
368
- stylesOverrides,
369
- shouldHideOriginal = false,
370
- isNative,
371
- urlRegexes,
372
- parentSelector
373
- } = _a, restProps = __objRest(_a, [
374
- "shouldUseDivWrapper",
375
- "divWrapperStyle",
376
- "wrapperStyle",
377
- "elementStyle",
378
- "adSelector",
379
- "insertionIndex",
380
- "insertBeforeSelector",
381
- "insertAfterSelector",
382
- "insertionsCount",
383
- "elementToMeasureSelector",
384
- "stylesOverrides",
385
- "shouldHideOriginal",
386
- "isNative",
387
- "urlRegexes",
388
- "parentSelector"
389
- ]);
390
- const wrapperStyle = restProps.wrapperType ? originalWrapperStyle : shouldUseDivWrapper ? originalDivWrapperStyle : { display: "contents" };
391
- const {
392
- isMultiple: shouldSearchForManyBannersInParent,
393
- cssString: bannerCssString,
394
- parentDepth: bannerParentDepth
395
- } = adSelector;
396
- const ourAds = applyQuerySelector(
397
- isNative ? ourNativeAdQuerySelector : ourBannerAdQuerySelector,
398
- true,
399
- parent
400
- ).reduce((acc, element) => {
401
- if (acc.some((prevElement) => prevElement.contains(element) || element.contains(prevElement))) {
402
- return acc;
403
- }
404
- return [...acc, element];
405
- }, []);
406
- const ourAdsCount = ourAds.length;
407
- let insertionsLeft = insertionsCount - ourAdsCount;
408
- const banners = applyQuerySelector(bannerCssString, shouldSearchForManyBannersInParent, parent).map((element) => getParentOfDepth(element, bannerParentDepth)).filter((value) => isTruthy(value) && !elementIsOurAd(value));
409
- banners.forEach((banner) => {
410
- var _a2, _b2;
411
- const bannerIsHidden = window.getComputedStyle(banner).display === "none";
412
- if (insertionsLeft <= 0) {
413
- if (!shouldHideOriginal || !bannerIsHidden) {
414
- result.push({
415
- type: shouldHideOriginal ? "hide-element" /* HideElement */ : "remove-element" /* RemoveElement */,
416
- element: banner
417
- });
418
- }
419
- } else {
420
- let elementToMeasure2 = ((_a2 = banner.parentElement) == null ? void 0 : _a2.children.length) === 1 ? banner.parentElement : banner;
421
- if (elementToMeasureSelector) {
422
- elementToMeasure2 = (_b2 = document.querySelector(elementToMeasureSelector)) != null ? _b2 : elementToMeasure2;
423
- }
424
- const replaceActionBase = __spreadValues({
425
- type: "replace-element" /* ReplaceElement */,
426
- element: banner,
427
- wrapperStyle,
428
- elementStyle,
429
- stylesOverrides
430
- }, restProps);
431
- const hideActionBase = {
432
- type: "hide-element" /* HideElement */,
433
- element: banner
434
- };
435
- const insertActionBase = __spreadValues({
436
- type: "simple-insert-ad" /* SimpleInsertAd */,
437
- wrapperStyle,
438
- elementStyle,
439
- parent: banner.parentElement,
440
- insertionIndex: Array.from(banner.parentElement.children).indexOf(banner),
441
- isSiblingReplacement: true,
442
- stylesOverrides
443
- }, restProps);
444
- let actionsToInsert = [];
445
- const ourAdAlreadyInserted = prevBannerSiblingIsReplacement(banner);
446
- if (shouldHideOriginal && ourAdAlreadyInserted && !bannerIsHidden) {
447
- actionsToInsert = [hideActionBase];
448
- } else if (shouldHideOriginal && !ourAdAlreadyInserted) {
449
- actionsToInsert = [hideActionBase, insertActionBase];
450
- } else if (!shouldHideOriginal) {
451
- actionsToInsert = [replaceActionBase];
452
- }
453
- if (actionsToInsert.length > 0 && addActionsIfAdResolutionAvailable(elementToMeasure2, "permanent" /* Permanent */, isNative, ...actionsToInsert)) {
454
- insertionsLeft--;
455
- }
456
- }
457
- });
458
- if (insertionsLeft <= 0) {
459
- return;
460
- }
461
- let normalizedInsertionIndex = -1;
462
- let insertionParentElement = parent;
463
- let elementToMeasure = parent;
464
- const insertAnchorSelector = insertBeforeSelector || insertAfterSelector;
465
- if (insertAnchorSelector) {
466
- const insertAnchorElement = parent.querySelector(insertAnchorSelector);
467
- const newInsertionParentElement = insertAnchorElement == null ? void 0 : insertAnchorElement.parentElement;
468
- if (insertAnchorElement && newInsertionParentElement) {
469
- insertionParentElement = newInsertionParentElement;
470
- normalizedInsertionIndex = Array.from(parent.children).indexOf(insertAnchorElement) + (insertBeforeSelector ? 0 : 1);
471
- elementToMeasure = elementToMeasureSelector && document.querySelector(elementToMeasureSelector) || insertAnchorElement;
472
- }
473
- } else {
474
- const insertionIndexWithDefault = insertionIndex != null ? insertionIndex : 0;
475
- normalizedInsertionIndex = insertionIndexWithDefault < 0 ? Math.max(parent.children.length + insertionIndexWithDefault, 0) : Math.min(insertionIndexWithDefault, parent.children.length);
476
- elementToMeasure = elementToMeasureSelector && document.querySelector(elementToMeasureSelector) || ((_b = parent.children[normalizedInsertionIndex]) != null ? _b : parent);
477
- }
478
- if (normalizedInsertionIndex !== -1) {
479
- const actionBase = __spreadValues({
480
- type: "simple-insert-ad" /* SimpleInsertAd */,
481
- wrapperStyle,
482
- elementStyle,
483
- parent: insertionParentElement,
484
- insertionIndex: normalizedInsertionIndex,
485
- isSiblingReplacement: false,
486
- stylesOverrides
487
- }, restProps);
488
- addActionsIfAdResolutionAvailable(
489
- elementToMeasure,
490
- "permanent" /* Permanent */,
491
- isNative,
492
- ...Array(insertionsLeft).fill(actionBase)
493
- );
494
- }
495
- };
496
-
497
- // src/ads-actions/process-providers-ads.ts
498
- var styleToAdjustProps = [
499
- "align-items",
500
- "align-self",
501
- "bottom",
502
- "display",
503
- "flex",
504
- "flex-grow",
505
- "flex-shrink",
506
- "float",
507
- "justify-content",
508
- "justify-self",
509
- "left",
510
- "margin",
511
- "max-block-size",
512
- "max-height",
513
- "max-inline-size",
514
- "max-width",
515
- "min-block-size",
516
- "min-height",
517
- "min-inline-size",
518
- "min-width",
519
- "padding",
520
- "position",
521
- "right",
522
- "top",
523
- "vertical-align",
524
- "z-index"
525
- ];
526
- var processProvidersAds = (providersSelectors, addActionsIfAdResolutionAvailable, result) => __async(void 0, null, function* () {
527
- const bannersFromProviders = providersSelectors.map(({ selector: providersSelector, parentDepth }) => {
528
- return applyQuerySelector(providersSelector, true).reduce((acc, foundElement) => {
529
- var _a;
530
- const newBanner = (_a = getParentOfDepth(foundElement, parentDepth)) != null ? _a : foundElement;
531
- const parentElementIndex = acc.findIndex((banner) => banner.contains(newBanner));
532
- const parentStyles = newBanner.parentElement && window.getComputedStyle(newBanner.parentElement);
533
- const { width, height } = getFinalSize(newBanner);
534
- const bannerIsTouchedByOtherActions = result.some((action) => {
535
- var _a2;
536
- if (action.type === "replace-all-children" /* ReplaceAllChildren */ || action.type === "simple-insert-ad" /* SimpleInsertAd */) {
537
- return action.parent.contains(newBanner) || newBanner.contains(action.parent);
538
- }
539
- return ((_a2 = action.element.parentElement) == null ? void 0 : _a2.contains(newBanner)) || newBanner.contains(action.element);
540
- });
541
- const bannerIsHiddenByParent = (parentStyles == null ? void 0 : parentStyles.display) === "none" || (parentStyles == null ? void 0 : parentStyles.visibility) === "hidden";
542
- const hasAnchorParent = parentElementIndex >= 0 && acc[parentElementIndex] instanceof HTMLAnchorElement;
543
- if (bannerIsTouchedByOtherActions || width === 0 || height === 0 || bannerIsHiddenByParent || hasAnchorParent) {
544
- return acc;
545
- }
546
- if (parentElementIndex >= 0) {
547
- acc.splice(parentElementIndex, 1, newBanner);
548
- } else if (!acc.some((ancestorCandidate) => ancestorCandidate.contains(newBanner))) {
549
- acc.push(newBanner);
550
- }
551
- return acc;
552
- }, []);
553
- }).flat();
554
- yield Promise.all(
555
- bannersFromProviders.map((banner) => __async(void 0, null, function* () {
556
- var _a, _b, _c, _d, _e, _f, _g, _h;
557
- yield delay(0);
558
- const parent = banner.parentElement;
559
- const { width: bannerStyleWidth, height: bannerStyleHeight } = window.getComputedStyle(banner);
560
- const elementToMeasure = PX_VALUE_REGEX.test(bannerStyleWidth) && PX_VALUE_REGEX.test(bannerStyleHeight) ? banner : (_b = (_a = parent == null ? void 0 : parent.closest("div, article, aside, footer, header")) != null ? _a : (parent == null ? void 0 : parent.tagName.toLowerCase()) === "body" ? void 0 : parent) != null ? _b : banner;
561
- if (!elementIsOurAd(banner) && !banner.querySelector(ourAdQuerySelector) && !result.some(
562
- (action) => action.type === "simple-insert-ad" /* SimpleInsertAd */ ? false : action.type === "replace-all-children" /* ReplaceAllChildren */ ? action.parent.contains(banner) : action.element === banner
563
- )) {
564
- const bannerStyleAttribute = (_c = banner.getAttribute("style")) != null ? _c : "";
565
- const bannerStyleFromAttribute = Object.fromEntries(
566
- bannerStyleAttribute.split(";").filter(Boolean).map((style) => style.split(":").map((part) => part.trim()))
567
- );
568
- if (((_d = bannerStyleFromAttribute.width) == null ? void 0 : _d.match(/^0[a-z]/)) || ((_e = bannerStyleFromAttribute.height) == null ? void 0 : _e.match(/^0[a-z]/))) {
569
- return;
570
- }
571
- const bannerStyle = window.getComputedStyle(banner);
572
- const wrapperStyle = __spreadValues(__spreadValues({}, Object.fromEntries(styleToAdjustProps.map((propName) => [propName, bannerStyle.getPropertyValue(propName)]))), bannerStyleFromAttribute);
573
- const hideAction = {
574
- type: "hide-element" /* HideElement */,
575
- element: banner
576
- };
577
- const insertAdAction = {
578
- type: "simple-insert-ad" /* SimpleInsertAd */,
579
- wrapperStyle,
580
- parent: (_f = banner.parentElement) != null ? _f : document.body,
581
- insertionIndex: Array.from((_h = (_g = banner.parentElement) == null ? void 0 : _g.children) != null ? _h : []).indexOf(banner),
582
- isSiblingReplacement: true
583
- };
584
- const actions = prevBannerSiblingIsReplacement(banner) ? window.getComputedStyle(banner).display === "none" ? [] : [hideAction] : [hideAction, insertAdAction];
585
- addActionsIfAdResolutionAvailable(elementToMeasure, "provider-replacement" /* ProviderReplacement */, false, ...actions);
586
- }
587
- }))
588
- );
589
- });
590
-
591
- // src/ads-actions/process-rule.ts
592
- var processAdPlacesRule = (rule, permanentAdsParents, addActionsIfAdResolutionAvailable) => __async(void 0, null, function* () {
593
- const { cssString, isMultiple } = rule.selector;
594
- const selectedElements = applyQuerySelector(cssString, isMultiple);
595
- yield Promise.all(
596
- selectedElements.map((selectedElement) => __async(void 0, null, function* () {
597
- yield delay(0);
598
- processSelectedElement(selectedElement, rule, permanentAdsParents, addActionsIfAdResolutionAvailable);
599
- }))
600
- );
601
- });
602
- var processSelectedElement = (selectedElement, rule, permanentAdsParents, addActionsIfAdResolutionAvailable) => {
603
- const {
604
- selector: { shouldUseDivWrapper, parentDepth, divWrapperStyle },
605
- stylesOverrides,
606
- shouldHideOriginal,
607
- isNative = false
608
- } = rule;
609
- const banner = getParentOfDepth(selectedElement, parentDepth);
610
- if (!banner || permanentAdsParents.some((parent) => parent.contains(banner)) || elementIsOurAd(banner) || banner.querySelector(ourAdQuerySelector)) {
611
- return;
612
- }
613
- const actionBaseCommonProps = {
614
- shouldUseDivWrapper,
615
- wrapperStyle: divWrapperStyle
616
- };
617
- let actionsBases;
618
- if (shouldUseDivWrapper && shouldHideOriginal) {
619
- const parent = banner.parentElement;
620
- const bannerIsHidden = window.getComputedStyle(banner).display === "none";
621
- const insertAdAction = __spreadValues({
622
- type: "simple-insert-ad" /* SimpleInsertAd */,
623
- parent,
624
- insertionIndex: Array.from(parent.children).indexOf(banner),
625
- stylesOverrides: stylesOverrides == null ? void 0 : stylesOverrides.map((_a) => {
626
- var _b = _a, { parentDepth: parentDepth2 } = _b, restProps = __objRest(_b, ["parentDepth"]);
627
- return __spreadProps(__spreadValues({}, restProps), {
628
- parentDepth: parentDepth2 - 1
629
- });
630
- }),
631
- isSiblingReplacement: true
632
- }, actionBaseCommonProps);
633
- actionsBases = [];
634
- if (!bannerIsHidden) {
635
- actionsBases.push({ type: "hide-element" /* HideElement */, element: banner });
636
- }
637
- if (!prevBannerSiblingIsReplacement(banner)) {
638
- actionsBases.push(insertAdAction);
639
- }
640
- } else if (shouldUseDivWrapper) {
641
- const replaceElementActionBase = __spreadValues({
642
- type: "replace-element" /* ReplaceElement */,
643
- element: banner,
644
- stylesOverrides: stylesOverrides == null ? void 0 : stylesOverrides.map((_c) => {
645
- var _d = _c, { parentDepth: parentDepth2 } = _d, restProps = __objRest(_d, ["parentDepth"]);
646
- return __spreadProps(__spreadValues({}, restProps), {
647
- parentDepth: parentDepth2 - 1
648
- });
649
- })
650
- }, actionBaseCommonProps);
651
- actionsBases = [replaceElementActionBase];
652
- } else if (shouldHideOriginal) {
653
- const insertAdAction = {
654
- type: "simple-insert-ad" /* SimpleInsertAd */,
655
- parent: banner,
656
- insertionIndex: 0,
657
- stylesOverrides,
658
- isSiblingReplacement: true,
659
- wrapperStyle: { display: "contents" }
660
- };
661
- actionsBases = Array.from(banner.children).filter((child) => window.getComputedStyle(child).display !== "none").map((child) => ({ type: "hide-element" /* HideElement */, element: child }));
662
- if (!banner.querySelector(ourAdQuerySelector)) {
663
- actionsBases.push(insertAdAction);
664
- }
665
- } else {
666
- const replaceAllChildrenActionBase = {
667
- type: "replace-all-children" /* ReplaceAllChildren */,
668
- parent: banner,
669
- stylesOverrides,
670
- wrapperStyle: { display: "contents" }
671
- };
672
- actionsBases = [replaceAllChildrenActionBase];
673
- }
674
- if (actionsBases.length > 0) {
675
- addActionsIfAdResolutionAvailable(banner, "slot-replacement" /* SlotReplacement */, isNative, ...actionsBases);
676
- }
677
- };
678
-
679
- // src/ads-actions/index.ts
680
- var getAdsActions = (_0) => __async(void 0, [_0], function* ({ providersSelectors, adPlacesRules, permanentAdPlacesRules }) {
681
- const result = [];
682
- const addActionsIfAdResolutionAvailable = (elementToMeasure, adType, adIsNative, ...actionsBases) => {
683
- const { width, height } = getFinalSize(elementToMeasure);
684
- const adsMetadata = pickAdsToDisplay(width, height, adType, adIsNative);
685
- if (!adsMetadata.length)
686
- return false;
687
- result.push(
688
- ...actionsBases.map(
689
- (actionBase) => actionBase.type === "hide-element" /* HideElement */ || actionBase.type === "remove-element" /* RemoveElement */ ? actionBase : __spreadProps(__spreadValues({}, actionBase), { adsMetadata })
690
- )
691
- );
692
- return true;
693
- };
694
- let permanentAdsParents = [];
695
- yield Promise.all(
696
- permanentAdPlacesRules.map((rule) => __async(void 0, null, function* () {
697
- yield delay(0);
698
- permanentAdsParents = permanentAdsParents.concat(
699
- yield processPermanentAdPlacesRule(rule, addActionsIfAdResolutionAvailable, result)
700
- );
701
- }))
702
- );
703
- yield Promise.all(
704
- adPlacesRules.map((rule) => __async(void 0, null, function* () {
705
- yield delay(0);
706
- yield processAdPlacesRule(rule, permanentAdsParents, addActionsIfAdResolutionAvailable);
707
- }))
708
- );
709
- yield processProvidersAds(providersSelectors, addActionsIfAdResolutionAvailable, result);
710
- return result;
711
- });
712
-
713
- // src/types/ads-provider.ts
714
- var AdsProviderTitle = /* @__PURE__ */ ((AdsProviderTitle2) => {
715
- AdsProviderTitle2["Optimal"] = "Optimal";
716
- AdsProviderTitle2["HypeLab"] = "HypeLab";
717
- AdsProviderTitle2["Persona"] = "Persona";
718
- AdsProviderTitle2["Temple"] = "Temple Wallet";
719
- return AdsProviderTitle2;
720
- })(AdsProviderTitle || {});
721
-
722
- // src/execute-ads-actions/observing.ts
723
- var loadingAdsIds = /* @__PURE__ */ new Set();
724
- var loadedAdsIds = /* @__PURE__ */ new Set();
725
- var alreadySentAnalyticsAdsIds = /* @__PURE__ */ new Set();
726
- var subscribeToAdsStackIframeLoadIfNecessary = (element) => __async(void 0, null, function* () {
727
- const adId = element.id;
728
- if (loadingAdsIds.has(adId)) {
729
- return;
730
- }
731
- loadingAdsIds.add(adId);
732
- return new Promise((resolve, reject) => {
733
- const messageListener = (event) => {
734
- var _a, _b, _c;
735
- if (event.source !== element.contentWindow)
736
- return;
737
- try {
738
- const data = typeof event.data === "string" ? JSON.parse(event.data) : event.data;
739
- if (data.id !== adId)
740
- return;
741
- const horizontalBordersWidth = element.offsetWidth - element.clientWidth;
742
- const verticalBordersWidth = element.offsetHeight - element.clientHeight;
743
- switch (data.type) {
744
- case AD_READY_MESSAGE_TYPE:
745
- resolve(data.adMetadata.source.providerName);
746
- break;
747
- case AD_ERROR_MESSAGE_TYPE:
748
- window.removeEventListener("message", messageListener);
749
- element.style.display = "none";
750
- reject(new Error((_a = data.reason) != null ? _a : "Unknown error"));
751
- break;
752
- case AD_RENDER_START_MESSAGE_TYPE:
753
- const { dimensions } = data.adMetadata;
754
- const { width, height } = dimensions;
755
- if (width > 0 && height > 0) {
756
- if (!((_b = element.style.width) == null ? void 0 : _b.endsWith("%"))) {
757
- element.style.width = `${dimensions.width}px`;
758
- }
759
- element.style.height = `${dimensions.height}px`;
760
- }
761
- break;
762
- case AD_RESIZE_MESSAGE_TYPE:
763
- const { width: newWidth, height: newHeight } = data;
764
- if (!((_c = element.style.width) == null ? void 0 : _c.endsWith("%"))) {
765
- element.style.width = `${newWidth + horizontalBordersWidth}px`;
766
- }
767
- element.style.height = `${newHeight + verticalBordersWidth}px`;
768
- }
769
- } catch (error) {
770
- console.error("Observing error:", error);
771
- }
772
- };
773
- window.addEventListener("message", messageListener);
774
- }).then((providerName) => {
775
- if (loadedAdsIds.has(adId))
776
- return;
777
- loadedAdsIds.add(adId);
778
- const adIsSeen = adRectIsSeen(element);
779
- if (adIsSeen) {
780
- sendExternalAdsActivity(adId, providerName);
781
- } else {
782
- observeIntersection(element, providerName);
783
- }
784
- }).catch((e) => {
785
- console.error(e);
786
- throw e;
787
- }).finally(() => void loadingAdsIds.delete(adId));
788
- });
789
- var observeIntersection = (element, providerName) => {
790
- const observer = new IntersectionObserver(
791
- (entries) => {
792
- if (entries.some((entry) => entry.isIntersecting)) {
793
- sendExternalAdsActivity(element.id, providerName);
794
- observer.disconnect();
795
- }
796
- },
797
- { threshold: AD_SEEN_THRESHOLD }
798
- );
799
- observer.observe(element);
800
- };
801
- var sendExternalAdsActivity = (adId, providerName) => {
802
- if (alreadySentAnalyticsAdsIds.has(adId)) {
803
- return;
804
- }
805
- alreadySentAnalyticsAdsIds.add(adId);
806
- const url = window.parent.location.href;
807
- browser__default.default.runtime.sendMessage({
808
- type: AdsConfiguration.EXTERNAL_ADS_ACTIVITY_MESSAGE_TYPE,
809
- url,
810
- provider: AdsProviderTitle[providerName]
811
- }).catch((err) => void console.error(err));
812
- };
813
- var adRectIsSeen = (element) => {
814
- const elementRect = element.getBoundingClientRect();
815
- const viewport = window.visualViewport;
816
- if (!viewport) {
817
- return false;
818
- }
819
- const intersectionX0 = Math.min(Math.max(0, elementRect.x), viewport.width);
820
- const intersectionX1 = Math.min(Math.max(0, elementRect.x + elementRect.width), viewport.width);
821
- const intersectionY0 = Math.min(Math.max(0, elementRect.y), viewport.height);
822
- const intersectionY1 = Math.min(Math.max(0, elementRect.y + elementRect.height), viewport.height);
823
- const elementArea = elementRect.width * elementRect.height;
824
- const intersectionArea = (intersectionX1 - intersectionX0) * (intersectionY1 - intersectionY0);
825
- return intersectionArea / elementArea >= AD_SEEN_THRESHOLD;
826
- };
827
-
828
- // src/execute-ads-actions/override-element-styles.ts
829
- var overrideElementStyles = (element, overrides) => {
830
- for (const stylePropName in overrides) {
831
- element.style.setProperty(stylePropName, overrides[stylePropName]);
832
- }
833
- };
834
-
835
- // src/execute-ads-actions/process-insert-ad-action.ts
836
- var adjustToAd = (wrapperElement, adDimensions) => {
837
- const predefinedStylesKeyToOverride = ["width", "height"];
838
- predefinedStylesKeyToOverride.forEach((dimensionName) => {
839
- var _a;
840
- const predefinedStyleValue = (_a = wrapperElement.style[dimensionName]) != null ? _a : "";
841
- if (PX_VALUE_REGEX.test(predefinedStyleValue)) {
842
- const predefinedSize = parseInt(predefinedStyleValue, 10);
843
- if (predefinedSize < adDimensions[dimensionName]) {
844
- wrapperElement.style.removeProperty(dimensionName);
845
- }
846
- }
847
- });
848
- };
849
- var sumPxValues = (values) => values.reduce((acc, value) => {
850
- const parsedValue = parseInt(value, 10);
851
- return isNaN(parsedValue) && PX_VALUE_REGEX.test(value) ? acc : acc + parsedValue;
852
- }, 0);
853
- var processInsertAdActionOnce = (action, wrapperElement, insertionPoint, onAdsStackError) => __async(void 0, null, function* () {
854
- const { elementStyle = {}, stylesOverrides = [], adsMetadata, wrapperType } = action;
855
- stylesOverrides.sort((a, b) => a.parentDepth - b.parentDepth);
856
- let stylesOverridesCurrentElement;
857
- const adId = nanoid.nanoid();
858
- const adElement = document.createElement("iframe");
859
- adElement.src = AdsConfiguration.getAdsStackIframeURL(adId, action.adsMetadata, window.location.href);
860
- adElement.id = adId;
861
- const firstAdMetadataOrId = action.adsMetadata[0];
862
- const { dimensions } = typeof firstAdMetadataOrId === "number" ? BANNER_ADS_META[firstAdMetadataOrId] : firstAdMetadataOrId;
863
- adElement.style.width = wrapperType === "tbody" ? "100%" : `${dimensions.width}px`;
864
- adElement.style.height = `${dimensions.height}px`;
865
- adElement.style.border = "none";
866
- for (const styleProp in elementStyle) {
867
- adElement.style.setProperty(styleProp, elementStyle[styleProp]);
868
- }
869
- adElement.setAttribute(TEMPLE_WALLET_AD_ATTRIBUTE_NAME, "true");
870
- adjustToAd(wrapperElement, dimensions);
871
- insertionPoint.appendChild(adElement);
872
- switch (action.type) {
873
- case "replace-all-children" /* ReplaceAllChildren */:
874
- stylesOverridesCurrentElement = action.parent;
875
- action.parent.innerHTML = "";
876
- action.parent.appendChild(wrapperElement);
877
- break;
878
- case "replace-element" /* ReplaceElement */:
879
- stylesOverridesCurrentElement = action.element.parentElement;
880
- action.element.replaceWith(wrapperElement);
881
- break;
882
- default:
883
- if (action.isSiblingReplacement) {
884
- wrapperElement.setAttribute(SIBLING_REPLACEMENT_ATTRIBUTE_NAME, "true");
885
- }
886
- stylesOverridesCurrentElement = action.parent;
887
- action.parent.insertBefore(wrapperElement, action.parent.children[action.insertionIndex]);
888
- break;
889
- }
890
- if (wrapperType !== "tbody") {
891
- const {
892
- borderLeftWidth: adElementBLWidth,
893
- borderRightWidth: adElementBRWidth,
894
- borderTopWidth: adElementBTWidth,
895
- borderBottomWidth: adElementBBWidth
896
- } = window.getComputedStyle(adElement);
897
- const {
898
- borderLeftWidth: wrapperElementBLWidth,
899
- borderRightWidth: wrapperElementBRWidth,
900
- borderTopWidth: wrapperElementBTWidth,
901
- borderBottomWidth: wrapperElementBBWidth
902
- } = window.getComputedStyle(wrapperElement);
903
- const horizontalBordersWidth = sumPxValues([
904
- adElementBLWidth,
905
- adElementBRWidth,
906
- wrapperElementBLWidth,
907
- wrapperElementBRWidth
908
- ]);
909
- const verticalBordersWidth = sumPxValues([
910
- adElementBTWidth,
911
- adElementBBWidth,
912
- wrapperElementBTWidth,
913
- wrapperElementBBWidth
914
- ]);
915
- adElement.style.width = `${dimensions.width - horizontalBordersWidth}px`;
916
- adElement.style.height = `${dimensions.height - verticalBordersWidth}px`;
917
- }
918
- subscribeToAdsStackIframeLoadIfNecessary(adElement).catch(onAdsStackError);
919
- let currentParentDepth = 0;
920
- stylesOverrides.forEach(({ parentDepth, style }) => {
921
- while (parentDepth > currentParentDepth && stylesOverridesCurrentElement) {
922
- stylesOverridesCurrentElement = stylesOverridesCurrentElement.parentElement;
923
- currentParentDepth++;
924
- }
925
- if (stylesOverridesCurrentElement) {
926
- overrideElementStyles(stylesOverridesCurrentElement, style);
927
- }
928
- });
929
- });
930
- var processInsertAdAction = (action) => __async(void 0, null, function* () {
931
- const { wrapperStyle = {}, adsMetadata, wrapperType = "div", colsAfter = 0, colsBefore = 0, colspan = 1 } = action;
932
- const isNativeAd = adsMetadata.every((adMetadata) => typeof adMetadata === "object");
933
- let wrapperElement;
934
- let insertionPoint;
935
- if (wrapperType === "div") {
936
- wrapperElement = document.createElement("div");
937
- insertionPoint = wrapperElement;
938
- } else {
939
- wrapperElement = document.createElement("tbody");
940
- const row = document.createElement("tr");
941
- wrapperElement.appendChild(row);
942
- for (let i = 0; i < colsBefore; i++) {
943
- row.appendChild(document.createElement("td"));
944
- }
945
- const cell = document.createElement("td");
946
- cell.colSpan = colspan;
947
- row.appendChild(cell);
948
- insertionPoint = cell;
949
- for (let i = 0; i < colsAfter; i++) {
950
- row.appendChild(document.createElement("td"));
951
- }
952
- }
953
- wrapperElement.setAttribute(TEMPLE_WALLET_AD_ATTRIBUTE_NAME, "true");
954
- if (isNativeAd) {
955
- wrapperElement.setAttribute(TEMPLE_WALLET_NATIVE_AD_ATTRIBUTE_NAME, "true");
956
- }
957
- overrideElementStyles(wrapperElement, wrapperStyle);
958
- const hideFailedAd = () => {
959
- const emptyAdElement = document.createElement("div");
960
- emptyAdElement.setAttribute(TEMPLE_WALLET_AD_ATTRIBUTE_NAME, "true");
961
- if (isNativeAd) {
962
- emptyAdElement.setAttribute(TEMPLE_WALLET_NATIVE_AD_ATTRIBUTE_NAME, "true");
963
- }
964
- emptyAdElement.style.display = "none";
965
- wrapperElement.replaceWith(emptyAdElement);
966
- };
967
- yield processInsertAdActionOnce(action, wrapperElement, insertionPoint, (error) => {
968
- console.error("Failed to render ads", error);
969
- hideFailedAd();
970
- }).catch((error) => {
971
- console.error("Inserting an ad attempt error:", error);
972
- hideFailedAd();
973
- throw error;
974
- });
975
- });
976
-
977
- // src/execute-ads-actions/index.ts
978
- var executeAdsActions = (adsActions) => Promise.allSettled(
979
- adsActions.map((action) => __async(void 0, null, function* () {
980
- if (action.type === "remove-element" /* RemoveElement */) {
981
- action.element.remove();
982
- } else if (action.type === "hide-element" /* HideElement */) {
983
- action.element.style.setProperty("display", "none");
984
- } else {
985
- yield processInsertAdAction(action);
986
- }
987
- }))
988
- );
989
-
990
- // src/execute-ads-actions/ads-views/make-tkey-ad.ts
991
- var makeTKeyAdView = (width, height) => {
992
- const element = document.createElement("div");
993
- element.style.width = `${width}px`;
994
- element.style.height = `${height}px`;
995
- const div = document.createElement("div");
996
- div.style.width = `${width}px`;
997
- div.style.height = `${height}px`;
998
- element.appendChild(div);
999
- const anchor = document.createElement("a");
1000
- anchor.href = AdsConfiguration.SWAP_TKEY_URL;
1001
- anchor.target = "_blank";
1002
- anchor.rel = "noopener noreferrer";
1003
- anchor.style.width = "100%";
1004
- anchor.style.height = "100%";
1005
- div.appendChild(anchor);
1006
- const img = document.createElement("img");
1007
- img.src = AdsConfiguration.TKEY_INPAGE_AD_URL;
1008
- img.style.width = "100%";
1009
- img.style.height = "100%";
1010
- anchor.appendChild(img);
1011
- return { element };
1012
- };
1013
- var makeHypelabAdView = (source, dimensions, origin) => {
1014
- const { width, height } = dimensions;
1015
- const iframe = document.createElement("iframe");
1016
- iframe.src = getHypelabIframeUrl(source, origin, width, height, iframe.id);
1017
- iframe.style.width = source.native ? "100%" : `${width}px`;
1018
- iframe.style.height = `${height}px`;
1019
- iframe.style.border = "none";
1020
- return { element: iframe };
1021
- };
1022
- var getHypelabIframeUrl = (source, origin, width, height, id) => {
1023
- let defaultWidth, defaultHeight, placementSlug;
1024
- if (source.native) {
1025
- placementSlug = AdsConfiguration.HYPELAB_NATIVE_PLACEMENT_SLUG;
1026
- defaultWidth = 360;
1027
- defaultHeight = 110;
1028
- } else
1029
- switch (source.size) {
1030
- case "small":
1031
- defaultWidth = 320;
1032
- defaultHeight = 50;
1033
- placementSlug = AdsConfiguration.HYPELAB_SMALL_PLACEMENT_SLUG;
1034
- break;
1035
- case "high":
1036
- defaultWidth = 300;
1037
- defaultHeight = 250;
1038
- placementSlug = AdsConfiguration.HYPELAB_HIGH_PLACEMENT_SLUG;
1039
- break;
1040
- case "wide":
1041
- defaultWidth = 728;
1042
- defaultHeight = 90;
1043
- placementSlug = AdsConfiguration.HYPELAB_WIDE_PLACEMENT_SLUG;
1044
- break;
1045
- }
1046
- const url = new URL(AdsConfiguration.HYPELAB_ADS_WINDOW_URL);
1047
- if (source.native) {
1048
- url.searchParams.set("vh", String(height != null ? height : defaultHeight));
1049
- } else {
1050
- url.searchParams.set("w", String(width != null ? width : defaultWidth));
1051
- }
1052
- url.searchParams.set("h", String(height != null ? height : defaultHeight));
1053
- url.searchParams.set("p", placementSlug);
1054
- url.searchParams.set("o", encryptWithAES(origin));
1055
- if (id) {
1056
- url.searchParams.set("id", id);
1057
- }
1058
- return url.toString();
1059
- };
1060
- var encryptWithAES = (text) => cryptoJs.AES.encrypt(text, AdsConfiguration.TEMPLE_PASSPHRASE).toString();
1061
-
1062
- // src/execute-ads-actions/ads-views/make-persona-ad.ts
1063
- var makePersonaAdView = (id, shape, { width, height }) => {
1064
- const element = document.createElement("iframe");
1065
- element.src = AdsConfiguration.getPersonaIframeURL(id, shape);
1066
- element.id = id;
1067
- element.style.width = `${width}px`;
1068
- element.style.height = `${height}px`;
1069
- element.style.border = "none";
1070
- return { element };
1071
- };
1072
-
1073
- // src/render-ads-stack.ts
1074
- var broadcastMessage = (content) => window.parent.postMessage(JSON.stringify(content), "*");
1075
- var renderAdsStack = (adId, adsMetadata, origin) => __async(void 0, null, function* () {
1076
- if (adsMetadata.length === 0) {
1077
- broadcastMessage({ id: adId, type: AD_ERROR_MESSAGE_TYPE, reason: "No more ads to render" });
1078
- return;
1079
- }
1080
- const [adMetadataOrId, ...rest] = adsMetadata;
1081
- const adMetadata = typeof adMetadataOrId === "number" ? BANNER_ADS_META[adMetadataOrId] : adMetadataOrId;
1082
- broadcastMessage({ id: adId, type: AD_RENDER_START_MESSAGE_TYPE, adMetadata });
1083
- const { source, dimensions } = adMetadata;
1084
- let adView;
1085
- let withTempleLabel = true;
1086
- switch (source.providerName) {
1087
- case "Temple":
1088
- adView = makeTKeyAdView(dimensions.width, dimensions.height);
1089
- break;
1090
- case "HypeLab":
1091
- adView = makeHypelabAdView(source, dimensions, origin);
1092
- if (source.native)
1093
- withTempleLabel = false;
1094
- break;
1095
- default:
1096
- adView = makePersonaAdView(adId, source.shape, dimensions);
1097
- }
1098
- const { element } = adView;
1099
- const rootElement = document.getElementById("root");
1100
- const templeLabelElement = document.getElementById("temple-label");
1101
- rootElement.replaceChildren(element);
1102
- if (withTempleLabel)
1103
- templeLabelElement.setAttribute("active", "");
1104
- else
1105
- templeLabelElement.removeAttribute("active");
1106
- if (element instanceof HTMLIFrameElement) {
1107
- return new Promise((resolve, reject) => {
1108
- const responseTimeout = setTimeout(() => {
1109
- window.removeEventListener("message", messageListener);
1110
- reject(new Error(`Timeout exceeded for ${adId}, ad source: ${JSON.stringify(source)}`));
1111
- }, AD_VARIANT_READY_TIMEOUT);
1112
- let wasReady = false;
1113
- const messageListener = (event) => {
1114
- var _a, _b;
1115
- if (event.source !== element.contentWindow) {
1116
- return;
1117
- }
1118
- try {
1119
- const data = typeof event.data === "string" ? JSON.parse(event.data) : event.data;
1120
- switch (data.type) {
1121
- case AD_READY_MESSAGE_TYPE:
1122
- if (!wasReady) {
1123
- wasReady = true;
1124
- broadcastMessage({ id: adId, type: AD_READY_MESSAGE_TYPE, adMetadata });
1125
- clearTimeout(responseTimeout);
1126
- resolve();
1127
- }
1128
- break;
1129
- case AD_ERROR_MESSAGE_TYPE:
1130
- window.removeEventListener("message", messageListener);
1131
- clearTimeout(responseTimeout);
1132
- reject(new Error((_a = data.reason) != null ? _a : "Unknown error"));
1133
- break;
1134
- case AD_RESIZE_MESSAGE_TYPE:
1135
- const { width, height } = data;
1136
- if (width > 0 && height > 0) {
1137
- if (!((_b = element.style.width) == null ? void 0 : _b.endsWith("%"))) {
1138
- element.style.width = `${width}px`;
1139
- }
1140
- element.style.height = `${height}px`;
1141
- broadcastMessage(__spreadProps(__spreadValues({}, data), { id: adId }));
1142
- }
1143
- }
1144
- } catch (error) {
1145
- console.error("Observing error:", error);
1146
- }
1147
- };
1148
- window.addEventListener("message", messageListener);
1149
- }).catch((e) => {
1150
- console.error(e);
1151
- return renderAdsStack(adId, rest, origin);
1152
- });
1153
- }
1154
- broadcastMessage({ id: adId, type: AD_READY_MESSAGE_TYPE, adMetadata });
1155
- });
1156
- var transformRawRules = (location, rules) => {
1157
- const {
1158
- adPlacesRulesForAllDomains,
1159
- providersRulesForAllDomains,
1160
- providersSelectors,
1161
- providersToReplaceAtAllSites,
1162
- permanentAdPlacesRulesForAllDomains,
1163
- permanentNativeAdPlacesRulesForAllDomains = {},
1164
- adsReplaceUrlsBlacklist = [],
1165
- timestamp
1166
- } = rules;
1167
- const { hostname, href } = location;
1168
- if (adsReplaceUrlsBlacklist.some((regex) => new RegExp(regex).test(href))) {
1169
- return {
1170
- adPlacesRules: [],
1171
- permanentAdPlacesRules: [],
1172
- providersSelectors: [],
1173
- timestamp
1174
- };
1175
- }
1176
- const hrefWithoutHash = href.replace(/#.*$/, "");
1177
- const hrefMatchPredicate = (regex) => {
1178
- const hrefToTest = regex.source.includes("#") ? href : hrefWithoutHash;
1179
- return regex.test(hrefToTest);
1180
- };
1181
- return {
1182
- adPlacesRules: buildAdPlacesRules(hostname, hrefMatchPredicate, adPlacesRulesForAllDomains),
1183
- permanentAdPlacesRules: buildPermanentAdPlacesRules(
1184
- hostname,
1185
- hrefMatchPredicate,
1186
- permanentAdPlacesRulesForAllDomains,
1187
- permanentNativeAdPlacesRulesForAllDomains
1188
- ),
1189
- providersSelectors: buildProvidersSelectors(
1190
- hostname,
1191
- hrefMatchPredicate,
1192
- providersRulesForAllDomains,
1193
- providersSelectors,
1194
- providersToReplaceAtAllSites
1195
- ),
1196
- timestamp
1197
- };
1198
- };
1199
- var buildAdPlacesRules = (hostname, hrefMatchPredicate, adPlacesRulesForAllDomains) => {
1200
- var _a;
1201
- const adPlacesRules = ((_a = adPlacesRulesForAllDomains[hostname]) != null ? _a : []).map((_b) => {
1202
- var _c = _b, { urlRegexes } = _c, restRuleProps = __objRest(_c, ["urlRegexes"]);
1203
- return __spreadProps(__spreadValues({}, restRuleProps), {
1204
- urlRegexes: urlRegexes.map((regex) => new RegExp(regex))
1205
- });
1206
- });
1207
- const aggregatedRelatedAdPlacesRules = adPlacesRules.reduce(
1208
- (acc, _d) => {
1209
- var _e = _d, { urlRegexes, selector } = _e, restProps = __objRest(_e, ["urlRegexes", "selector"]);
1210
- if (!urlRegexes.some(hrefMatchPredicate))
1211
- return acc;
1212
- const _a2 = selector, { cssString } = _a2, restSelectorProps = __objRest(_a2, ["cssString"]);
1213
- const ruleToComplementIndex = acc.findIndex((_b) => {
1214
- var _c = _b, { selector: candidateSelector } = _c, candidateRestProps = __objRest(_c, ["selector"]);
1215
- const _a3 = candidateSelector, restCandidateSelectorProps = __objRest(_a3, ["cssString"]);
1216
- return lodash.isEqual(restSelectorProps, restCandidateSelectorProps) && lodash.isEqual(restProps, candidateRestProps);
1217
- });
1218
- if (ruleToComplementIndex === -1) {
1219
- acc.push(__spreadValues({ selector }, restProps));
1220
- } else {
1221
- acc[ruleToComplementIndex].selector.cssString += ", ".concat(cssString);
1222
- }
1223
- return acc;
1224
- },
1225
- []
1226
- );
1227
- return aggregatedRelatedAdPlacesRules;
1228
- };
1229
- var buildPermanentAdPlacesRules = (hostname, hrefMatchPredicate, permanentAdPlacesRulesForAllDomains, permanentNativeAdPlacesRulesForAllDomains = {}) => {
1230
- var _a, _b;
1231
- const rawPermanentAdPlacesRules = (_a = permanentAdPlacesRulesForAllDomains[hostname]) != null ? _a : [];
1232
- const rawPermanentNativeAdPlacesRules = (_b = permanentNativeAdPlacesRulesForAllDomains[hostname]) != null ? _b : [];
1233
- const permanentAdPlacesRules = rawPermanentAdPlacesRules.map((_c) => {
1234
- var _d = _c, { urlRegexes } = _d, restRuleProps = __objRest(_d, ["urlRegexes"]);
1235
- return __spreadProps(__spreadValues({}, restRuleProps), {
1236
- urlRegexes: urlRegexes.map((regex) => new RegExp(regex)),
1237
- isNative: false
1238
- });
1239
- }).concat(
1240
- rawPermanentNativeAdPlacesRules.map((_e) => {
1241
- var _f = _e, { urlRegexes } = _f, restRuleProps = __objRest(_f, ["urlRegexes"]);
1242
- return __spreadProps(__spreadValues({}, restRuleProps), {
1243
- urlRegexes: urlRegexes.map((regex) => new RegExp(regex)),
1244
- isNative: true
1245
- });
1246
- })
1247
- );
1248
- return permanentAdPlacesRules.filter(({ urlRegexes }) => urlRegexes.some(hrefMatchPredicate));
1249
- };
1250
- function quickJoinSelectors(selectors) {
1251
- let result = "";
1252
- selectors.forEach((selector) => {
1253
- result += selector + ", ";
1254
- });
1255
- if (result) {
1256
- result = result.slice(0, -2);
1257
- }
1258
- return result;
1259
- }
1260
- var buildProvidersSelectors = (hostname, hrefMatchPredicate, providersRulesForAllDomains, providersSelectors, providersToReplaceAtAllSites) => {
1261
- var _a;
1262
- const providersRulesByHostname = ((_a = providersRulesForAllDomains[hostname]) != null ? _a : []).map(
1263
- (_b) => {
1264
- var _c = _b, { urlRegexes } = _c, restRuleProps = __objRest(_c, ["urlRegexes"]);
1265
- return __spreadProps(__spreadValues({}, restRuleProps), {
1266
- urlRegexes: urlRegexes.map((regex) => new RegExp(regex))
1267
- });
1268
- }
1269
- );
1270
- const relatedProvidersRulesByUrl = providersRulesByHostname.filter(
1271
- ({ urlRegexes }) => urlRegexes.some(hrefMatchPredicate)
1272
- );
1273
- const alreadyProcessedProviders = /* @__PURE__ */ new Set();
1274
- const selectorsForProvidersToReplace = {};
1275
- const handleProvider = (provider) => {
1276
- var _a2;
1277
- if (alreadyProcessedProviders.has(provider))
1278
- return;
1279
- const newSelectors = (_a2 = providersSelectors[provider]) != null ? _a2 : [];
1280
- newSelectors.forEach((selector) => {
1281
- const { selector: cssString, parentDepth } = typeof selector === "string" ? { selector, parentDepth: 0 } : selector;
1282
- if (!selectorsForProvidersToReplace[parentDepth]) {
1283
- selectorsForProvidersToReplace[parentDepth] = /* @__PURE__ */ new Set();
1284
- }
1285
- selectorsForProvidersToReplace[parentDepth].add(cssString);
1286
- });
1287
- alreadyProcessedProviders.add(provider);
1288
- };
1289
- providersToReplaceAtAllSites.forEach(handleProvider);
1290
- relatedProvidersRulesByUrl.forEach(({ providers }) => providers.forEach(handleProvider));
1291
- return Object.entries(selectorsForProvidersToReplace).map(([parentDepth, selectors]) => ({
1292
- parentDepth: Number(parentDepth),
1293
- selector: quickJoinSelectors(selectors)
1294
- }));
1295
- };
1296
- var withFetchDataExtraction = (fetchFn) => (...args) => __async(void 0, null, function* () {
1297
- const { data } = yield fetchFn(...args);
1298
- return data;
1299
- });
1300
- var TempleWalletApi = class {
1301
- constructor(baseUrl) {
1302
- this.getAdPlacesRulesForAllDomains = withFetchDataExtraction(
1303
- () => this.api.get("/slise-ad-rules/ad-places", this.getAdVersionRequestConfig())
1304
- );
1305
- this.getProvidersToReplaceAtAllSites = withFetchDataExtraction(
1306
- () => this.api.get("/slise-ad-rules/providers/all-sites")
1307
- );
1308
- this.getProvidersRulesForAllDomains = withFetchDataExtraction(
1309
- () => this.api.get("/slise-ad-rules/providers/by-sites")
1310
- );
1311
- this.getSelectorsForAllProviders = withFetchDataExtraction(
1312
- () => this.api.get("/slise-ad-rules/providers", this.getAdVersionRequestConfig())
1313
- );
1314
- this.getPermanentAdPlacesRulesForAllDomains = withFetchDataExtraction(
1315
- () => this.api.get(
1316
- "/slise-ad-rules/ad-places/permanent",
1317
- this.getAdVersionRequestConfig()
1318
- )
1319
- );
1320
- this.getPermanentNativeAdPlacesRulesForAllDomains = withFetchDataExtraction(
1321
- () => this.api.get(
1322
- "/slise-ad-rules/ad-places/permanent-native",
1323
- this.getAdVersionRequestConfig()
1324
- )
1325
- );
1326
- this.getAdsReplaceUrlsBlacklist = withFetchDataExtraction(
1327
- () => this.api.get("/slise-ad-rules/replace-urls-blacklist", this.getAdVersionRequestConfig())
1328
- );
1329
- this.getAllRules = () => __async(this, null, function* () {
1330
- const [
1331
- adPlacesRulesForAllDomains,
1332
- providersRulesForAllDomains,
1333
- providersSelectors,
1334
- providersToReplaceAtAllSites,
1335
- permanentAdPlacesRulesForAllDomains,
1336
- permanentNativeAdPlacesRulesForAllDomains,
1337
- adsReplaceUrlsBlacklist
1338
- ] = yield Promise.all([
1339
- this.getAdPlacesRulesForAllDomains(),
1340
- this.getProvidersRulesForAllDomains(),
1341
- this.getSelectorsForAllProviders(),
1342
- this.getProvidersToReplaceAtAllSites(),
1343
- this.getPermanentAdPlacesRulesForAllDomains(),
1344
- this.getPermanentNativeAdPlacesRulesForAllDomains(),
1345
- this.getAdsReplaceUrlsBlacklist()
1346
- ]);
1347
- return {
1348
- adPlacesRulesForAllDomains,
1349
- providersRulesForAllDomains,
1350
- providersSelectors,
1351
- providersToReplaceAtAllSites,
1352
- permanentAdPlacesRulesForAllDomains,
1353
- permanentNativeAdPlacesRulesForAllDomains,
1354
- adsReplaceUrlsBlacklist,
1355
- timestamp: Date.now()
1356
- };
1357
- });
1358
- this.api = axios__default.default.create({
1359
- baseURL: new URL("/api", baseUrl).href,
1360
- adapter: axiosFetchAdapter__default.default
1361
- });
1362
- }
1363
- getAdVersionRequestConfig() {
1364
- return { params: { extVersion: AdsConfiguration.EXTENSION_VERSION } };
1365
- }
1366
- };
1367
-
1368
- exports.TempleWalletApi = TempleWalletApi;
1369
- exports.configureAds = configureAds;
1370
- exports.executeAdsActions = executeAdsActions;
1371
- exports.getAdsActions = getAdsActions;
1372
- exports.renderAdsStack = renderAdsStack;
1373
- exports.transformRawRules = transformRawRules;
18
+ exports.TempleWalletApi = Ae;
19
+ exports.configureAds = ze;
20
+ exports.executeAdsActions = rt;
21
+ exports.getAdsActions = Qe;
22
+ exports.renderAdsStack = Oe;
23
+ exports.transformRawRules = lt;