@temple-wallet/extension-ads 8.1.0-dev.5 → 8.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (90) hide show
  1. package/dist/ads-actions/helpers.d.ts +17 -0
  2. package/dist/ads-actions/helpers.js +96 -0
  3. package/dist/ads-actions/helpers.js.map +1 -0
  4. package/dist/ads-actions/index.d.ts +3 -0
  5. package/dist/ads-actions/index.js +63 -0
  6. package/dist/ads-actions/index.js.map +1 -0
  7. package/dist/ads-actions/process-elements-to-hide-or-remove-rule.d.ts +3 -0
  8. package/dist/ads-actions/process-elements-to-hide-or-remove-rule.js +19 -0
  9. package/dist/ads-actions/process-elements-to-hide-or-remove-rule.js.map +1 -0
  10. package/dist/ads-actions/process-permanent-rule.d.ts +3 -0
  11. package/dist/ads-actions/process-permanent-rule.js +143 -0
  12. package/dist/ads-actions/process-permanent-rule.js.map +1 -0
  13. package/dist/ads-actions/process-providers-ads.d.ts +3 -0
  14. package/dist/ads-actions/process-providers-ads.js +137 -0
  15. package/dist/ads-actions/process-providers-ads.js.map +1 -0
  16. package/dist/ads-actions/process-rule.d.ts +3 -0
  17. package/dist/ads-actions/process-rule.js +98 -0
  18. package/dist/ads-actions/process-rule.js.map +1 -0
  19. package/dist/ads-configuration.d.ts +31 -0
  20. package/dist/ads-configuration.js +30 -0
  21. package/dist/ads-configuration.js.map +1 -0
  22. package/dist/constants.d.ts +11 -0
  23. package/dist/constants.js +12 -0
  24. package/dist/constants.js.map +1 -0
  25. package/dist/execute-ads-actions/ads-views/index.d.ts +3 -0
  26. package/dist/execute-ads-actions/ads-views/index.js +4 -0
  27. package/dist/execute-ads-actions/ads-views/index.js.map +1 -0
  28. package/dist/execute-ads-actions/ads-views/make-ads-tw-view.d.ts +3 -0
  29. package/dist/execute-ads-actions/ads-views/make-ads-tw-view.js +40 -0
  30. package/dist/execute-ads-actions/ads-views/make-ads-tw-view.js.map +1 -0
  31. package/dist/execute-ads-actions/ads-views/make-extension-iframe-view.d.ts +3 -0
  32. package/dist/execute-ads-actions/ads-views/make-extension-iframe-view.js +22 -0
  33. package/dist/execute-ads-actions/ads-views/make-extension-iframe-view.js.map +1 -0
  34. package/dist/execute-ads-actions/ads-views/make-tkey-ad.d.ts +3 -0
  35. package/dist/execute-ads-actions/ads-views/make-tkey-ad.js +38 -0
  36. package/dist/execute-ads-actions/ads-views/make-tkey-ad.js.map +1 -0
  37. package/dist/execute-ads-actions/index.d.ts +2 -0
  38. package/dist/execute-ads-actions/index.js +23 -0
  39. package/dist/execute-ads-actions/index.js.map +1 -0
  40. package/dist/execute-ads-actions/observing.d.ts +1 -0
  41. package/dist/execute-ads-actions/observing.js +129 -0
  42. package/dist/execute-ads-actions/observing.js.map +1 -0
  43. package/dist/execute-ads-actions/override-element-styles.d.ts +2 -0
  44. package/dist/execute-ads-actions/override-element-styles.js +6 -0
  45. package/dist/execute-ads-actions/override-element-styles.js.map +1 -0
  46. package/dist/execute-ads-actions/process-insert-ad-action.d.ts +2 -0
  47. package/dist/execute-ads-actions/process-insert-ad-action.js +153 -0
  48. package/dist/execute-ads-actions/process-insert-ad-action.js.map +1 -0
  49. package/dist/index.d.ts +0 -1
  50. package/dist/index.js +14 -12
  51. package/dist/index.js.map +1 -0
  52. package/dist/render-ads-stack.d.ts +7 -0
  53. package/dist/render-ads-stack.js +156 -0
  54. package/dist/render-ads-stack.js.map +1 -0
  55. package/dist/temple-wallet-api.d.ts +23 -0
  56. package/dist/temple-wallet-api.js +67 -0
  57. package/dist/temple-wallet-api.js.map +1 -0
  58. package/dist/transform-raw-rules.d.ts +3 -0
  59. package/dist/transform-raw-rules.js +137 -0
  60. package/dist/transform-raw-rules.js.map +1 -0
  61. package/dist/types/ad-view.d.ts +7 -0
  62. package/dist/types/ad-view.js +2 -0
  63. package/dist/types/ad-view.js.map +1 -0
  64. package/dist/types/ads-actions.d.ts +56 -0
  65. package/dist/types/ads-actions.js +15 -0
  66. package/dist/types/ads-actions.js.map +1 -0
  67. package/dist/types/ads-meta.d.ts +19 -0
  68. package/dist/types/ads-meta.js +2 -0
  69. package/dist/types/ads-meta.js.map +1 -0
  70. package/dist/types/ads-provider.d.ts +8 -0
  71. package/dist/types/ads-provider.js +9 -0
  72. package/dist/types/ads-provider.js.map +1 -0
  73. package/dist/types/ads-rules.d.ts +26 -0
  74. package/dist/types/ads-rules.js +2 -0
  75. package/dist/types/ads-rules.js.map +1 -0
  76. package/dist/types/temple-wallet-api.d.ts +78 -0
  77. package/dist/types/temple-wallet-api.js +2 -0
  78. package/dist/types/temple-wallet-api.js.map +1 -0
  79. package/dist/utils.d.ts +6 -0
  80. package/dist/utils.js +4 -0
  81. package/dist/utils.js.map +1 -0
  82. package/package.json +3 -2
  83. package/src/ads-actions/helpers.ts +2 -36
  84. package/src/ads-actions/process-permanent-rule.ts +3 -5
  85. package/src/ads-actions/process-providers-ads.ts +2 -28
  86. package/src/execute-ads-actions/observing.ts +1 -3
  87. package/src/execute-ads-actions/process-insert-ad-action.ts +4 -24
  88. package/src/render-ads-stack.ts +2 -12
  89. package/src/temple-wallet-api.ts +2 -1
  90. package/src/types/ads-actions.ts +0 -1
@@ -0,0 +1,98 @@
1
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
3
+ return new (P || (P = Promise))(function (resolve, reject) {
4
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
5
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
6
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
7
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
8
+ });
9
+ };
10
+ var __rest = (this && this.__rest) || function (s, e) {
11
+ var t = {};
12
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
13
+ t[p] = s[p];
14
+ if (s != null && typeof Object.getOwnPropertySymbols === "function")
15
+ for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
16
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
17
+ t[p[i]] = s[p[i]];
18
+ }
19
+ return t;
20
+ };
21
+ import { CRYPTO_CATEGORY_NAME } from 'src/constants';
22
+ import { AdActionType, AdType } from 'src/types/ads-actions';
23
+ import { delay } from 'src/utils';
24
+ import { applyQuerySelector, elementIsOurAd, getParentOfDepth, prevBannerSiblingIsReplacement, ourAdQuerySelector } from './helpers';
25
+ export const processAdPlacesRule = (rule, permanentAdsParents, addActionsIfAdResolutionAvailable) => __awaiter(void 0, void 0, void 0, function* () {
26
+ const { cssString, isMultiple } = rule.selector;
27
+ const selectedElements = applyQuerySelector(cssString, isMultiple);
28
+ yield Promise.all(selectedElements.map((selectedElement) => __awaiter(void 0, void 0, void 0, function* () {
29
+ yield delay(0);
30
+ processSelectedElement(selectedElement, rule, permanentAdsParents, addActionsIfAdResolutionAvailable);
31
+ })));
32
+ });
33
+ const processSelectedElement = (selectedElement, rule, permanentAdsParents, addActionsIfAdResolutionAvailable) => {
34
+ const { selector: { shouldUseDivWrapper, parentDepth, divWrapperStyle }, stylesOverrides, shouldHideOriginal, isNative = false } = rule;
35
+ const banner = getParentOfDepth(selectedElement, parentDepth);
36
+ if (!banner ||
37
+ permanentAdsParents.some(parent => parent.contains(banner)) ||
38
+ elementIsOurAd(banner) ||
39
+ banner.querySelector(ourAdQuerySelector)) {
40
+ return;
41
+ }
42
+ const actionBaseCommonProps = {
43
+ shouldUseDivWrapper,
44
+ wrapperStyle: divWrapperStyle
45
+ };
46
+ let actionsBases;
47
+ if (shouldUseDivWrapper && shouldHideOriginal) {
48
+ const parent = banner.parentElement;
49
+ const bannerIsHidden = window.getComputedStyle(banner).display === 'none';
50
+ const insertAdAction = Object.assign({ type: AdActionType.SimpleInsertAd, parent, insertionIndex: Array.from(parent.children).indexOf(banner), stylesOverrides: stylesOverrides === null || stylesOverrides === void 0 ? void 0 : stylesOverrides.map((_a) => {
51
+ var { parentDepth } = _a, restProps = __rest(_a, ["parentDepth"]);
52
+ return (Object.assign(Object.assign({}, restProps), { parentDepth: parentDepth - 1 }));
53
+ }), isSiblingReplacement: true }, actionBaseCommonProps);
54
+ actionsBases = [];
55
+ if (!bannerIsHidden) {
56
+ actionsBases.push({ type: AdActionType.HideElement, element: banner });
57
+ }
58
+ if (!prevBannerSiblingIsReplacement(banner)) {
59
+ actionsBases.push(insertAdAction);
60
+ }
61
+ }
62
+ else if (shouldUseDivWrapper) {
63
+ const replaceElementActionBase = Object.assign({ type: AdActionType.ReplaceElement, element: banner, stylesOverrides: stylesOverrides === null || stylesOverrides === void 0 ? void 0 : stylesOverrides.map((_a) => {
64
+ var { parentDepth } = _a, restProps = __rest(_a, ["parentDepth"]);
65
+ return (Object.assign(Object.assign({}, restProps), { parentDepth: parentDepth - 1 }));
66
+ }) }, actionBaseCommonProps);
67
+ actionsBases = [replaceElementActionBase];
68
+ }
69
+ else if (shouldHideOriginal) {
70
+ const insertAdAction = {
71
+ type: AdActionType.SimpleInsertAd,
72
+ parent: banner,
73
+ insertionIndex: 0,
74
+ stylesOverrides,
75
+ isSiblingReplacement: true,
76
+ wrapperStyle: { display: 'contents' }
77
+ };
78
+ actionsBases = Array.from(banner.children)
79
+ .filter(child => window.getComputedStyle(child).display !== 'none')
80
+ .map((child) => ({ type: AdActionType.HideElement, element: child }));
81
+ if (!banner.querySelector(ourAdQuerySelector)) {
82
+ actionsBases.push(insertAdAction);
83
+ }
84
+ }
85
+ else {
86
+ const replaceAllChildrenActionBase = {
87
+ type: AdActionType.ReplaceAllChildren,
88
+ parent: banner,
89
+ stylesOverrides,
90
+ wrapperStyle: { display: 'contents' }
91
+ };
92
+ actionsBases = [replaceAllChildrenActionBase];
93
+ }
94
+ if (actionsBases.length > 0) {
95
+ addActionsIfAdResolutionAvailable({ width: banner, height: banner }, AdType.SlotReplacement, isNative, [CRYPTO_CATEGORY_NAME], ...actionsBases);
96
+ }
97
+ };
98
+ //# sourceMappingURL=process-rule.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"process-rule.js","sourceRoot":"","sources":["../../src/ads-actions/process-rule.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAC;AACrD,OAAO,EAEL,YAAY,EAQZ,MAAM,EACP,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EAAE,KAAK,EAAE,MAAM,WAAW,CAAC;AAElC,OAAO,EACL,kBAAkB,EAClB,cAAc,EACd,gBAAgB,EAChB,8BAA8B,EAC9B,kBAAkB,EACnB,MAAM,WAAW,CAAC;AAEnB,MAAM,CAAC,MAAM,mBAAmB,GAAG,CACjC,IAAuC,EACvC,mBAAkC,EAClC,iCAAoE,EACpE,EAAE;IACF,MAAM,EAAE,SAAS,EAAE,UAAU,EAAE,GAAG,IAAI,CAAC,QAAQ,CAAC;IAEhD,MAAM,gBAAgB,GAAG,kBAAkB,CAAc,SAAS,EAAE,UAAU,CAAC,CAAC;IAEhF,MAAM,OAAO,CAAC,GAAG,CACf,gBAAgB,CAAC,GAAG,CAAC,CAAM,eAAe,EAAC,EAAE;QAC3C,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC;QAEf,sBAAsB,CAAC,eAAe,EAAE,IAAI,EAAE,mBAAmB,EAAE,iCAAiC,CAAC,CAAC;IACxG,CAAC,CAAA,CAAC,CACH,CAAC;AACJ,CAAC,CAAA,CAAC;AAEF,MAAM,sBAAsB,GAAG,CAC7B,eAA4B,EAC5B,IAAuC,EACvC,mBAAkC,EAClC,iCAAoE,EACpE,EAAE;IACF,MAAM,EACJ,QAAQ,EAAE,EAAE,mBAAmB,EAAE,WAAW,EAAE,eAAe,EAAE,EAC/D,eAAe,EACf,kBAAkB,EAClB,QAAQ,GAAG,KAAK,EACjB,GAAG,IAAI,CAAC;IAET,MAAM,MAAM,GAAG,gBAAgB,CAAC,eAAe,EAAE,WAAW,CAAC,CAAC;IAE9D,IACE,CAAC,MAAM;QACP,mBAAmB,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;QAC3D,cAAc,CAAC,MAAM,CAAC;QACtB,MAAM,CAAC,aAAa,CAAC,kBAAkB,CAAC,EACxC,CAAC;QACD,OAAO;IACT,CAAC;IAED,MAAM,qBAAqB,GAAG;QAC5B,mBAAmB;QACnB,YAAY,EAAE,eAAe;KAC9B,CAAC;IAEF,IAAI,YAAqF,CAAC;IAC1F,IAAI,mBAAmB,IAAI,kBAAkB,EAAE,CAAC;QAC9C,MAAM,MAAM,GAAG,MAAM,CAAC,aAAc,CAAC;QACrC,MAAM,cAAc,GAAG,MAAM,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC;QAC1E,MAAM,cAAc,mBAClB,IAAI,EAAE,YAAY,CAAC,cAAc,EACjC,MAAM,EACN,cAAc,EAAE,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,EAC3D,eAAe,EAAE,eAAe,aAAf,eAAe,uBAAf,eAAe,CAAE,GAAG,CAAC,CAAC,EAA6B,EAAE,EAAE;oBAAjC,EAAE,WAAW,OAAgB,EAAX,SAAS,cAA3B,eAA6B,CAAF;gBAAO,OAAA,iCACpE,SAAS,KACZ,WAAW,EAAE,WAAW,GAAG,CAAC,IAC5B,CAAA;aAAA,CAAC,EACH,oBAAoB,EAAE,IAAI,IACvB,qBAAqB,CACzB,CAAC;QAEF,YAAY,GAAG,EAAE,CAAC;QAClB,IAAI,CAAC,cAAc,EAAE,CAAC;YACpB,YAAY,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,YAAY,CAAC,WAAW,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC;QACzE,CAAC;QACD,IAAI,CAAC,8BAA8B,CAAC,MAAM,CAAC,EAAE,CAAC;YAC5C,YAAY,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QACpC,CAAC;IACH,CAAC;SAAM,IAAI,mBAAmB,EAAE,CAAC;QAC/B,MAAM,wBAAwB,mBAC5B,IAAI,EAAE,YAAY,CAAC,cAAc,EACjC,OAAO,EAAE,MAAM,EACf,eAAe,EAAE,eAAe,aAAf,eAAe,uBAAf,eAAe,CAAE,GAAG,CAAC,CAAC,EAA6B,EAAE,EAAE;oBAAjC,EAAE,WAAW,OAAgB,EAAX,SAAS,cAA3B,eAA6B,CAAF;gBAAO,OAAA,iCACpE,SAAS,KACZ,WAAW,EAAE,WAAW,GAAG,CAAC,IAC5B,CAAA;aAAA,CAAC,IACA,qBAAqB,CACzB,CAAC;QACF,YAAY,GAAG,CAAC,wBAAwB,CAAC,CAAC;IAC5C,CAAC;SAAM,IAAI,kBAAkB,EAAE,CAAC;QAC9B,MAAM,cAAc,GAAyC;YAC3D,IAAI,EAAE,YAAY,CAAC,cAAc;YACjC,MAAM,EAAE,MAAM;YACd,cAAc,EAAE,CAAC;YACjB,eAAe;YACf,oBAAoB,EAAE,IAAI;YAC1B,YAAY,EAAE,EAAE,OAAO,EAAE,UAAU,EAAE;SACtC,CAAC;QAEF,YAAY,GAAG,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC;aACvC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,MAAM,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC;aAClE,GAAG,CAAC,CAAC,KAAK,EAAqB,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,YAAY,CAAC,WAAW,EAAE,OAAO,EAAE,KAAoB,EAAE,CAAC,CAAC,CAAC;QAC1G,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,kBAAkB,CAAC,EAAE,CAAC;YAC9C,YAAY,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QACpC,CAAC;IACH,CAAC;SAAM,CAAC;QACN,MAAM,4BAA4B,GAAmD;YACnF,IAAI,EAAE,YAAY,CAAC,kBAAkB;YACrC,MAAM,EAAE,MAAM;YACd,eAAe;YACf,YAAY,EAAE,EAAE,OAAO,EAAE,UAAU,EAAE;SACtC,CAAC;QACF,YAAY,GAAG,CAAC,4BAA4B,CAAC,CAAC;IAChD,CAAC;IAED,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC5B,iCAAiC,CAC/B,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,EACjC,MAAM,CAAC,eAAe,EACtB,QAAQ,EACR,CAAC,oBAAoB,CAAC,EACtB,GAAG,YAAY,CAChB,CAAC;IACJ,CAAC;AACH,CAAC,CAAC"}
@@ -0,0 +1,31 @@
1
+ import { AdMetadata } from './types/ads-meta';
2
+ interface IAdsConfiguration {
3
+ adsTwWindowUrl: string;
4
+ tkeyInpageAdUrl: string;
5
+ smallTkeyInpageAdUrl?: string;
6
+ swapTkeyUrl: string;
7
+ externalAdsActivityMessageType: string;
8
+ personaIframePath: string;
9
+ getAdsStackIframeURL: (id: string, adsMetadataIds: (number | AdMetadata)[], origin: string) => string;
10
+ buildNativeAdsMeta: (containerWidth: number, containerHeight: number) => AdMetadata[];
11
+ bannerAdsMeta: AdMetadata[];
12
+ extVersion: string;
13
+ templePassphrase: string;
14
+ isMisesBrowser: boolean;
15
+ }
16
+ export declare class AdsConfiguration {
17
+ static IS_MISES_BROWSER: boolean;
18
+ static ADS_TW_WINDOW_URL: string;
19
+ static TKEY_INPAGE_AD_URL: string;
20
+ static SMALL_TKEY_INPAGE_AD_URL: string;
21
+ static SWAP_TKEY_URL: string;
22
+ static EXTERNAL_ADS_ACTIVITY_MESSAGE_TYPE: string;
23
+ static personaIframePath: IAdsConfiguration['personaIframePath'];
24
+ static getAdsStackIframeURL: IAdsConfiguration['getAdsStackIframeURL'];
25
+ static buildNativeAdsMeta: IAdsConfiguration['buildNativeAdsMeta'];
26
+ static bannerAdsMeta: AdMetadata[];
27
+ static EXTENSION_VERSION: string | undefined;
28
+ static TEMPLE_PASSPHRASE: string;
29
+ }
30
+ export declare const configureAds: (config: IAdsConfiguration) => void;
31
+ export {};
@@ -0,0 +1,30 @@
1
+ export class AdsConfiguration {
2
+ }
3
+ AdsConfiguration.IS_MISES_BROWSER = false;
4
+ AdsConfiguration.ADS_TW_WINDOW_URL = '';
5
+ AdsConfiguration.TKEY_INPAGE_AD_URL = '';
6
+ AdsConfiguration.SMALL_TKEY_INPAGE_AD_URL = '';
7
+ AdsConfiguration.SWAP_TKEY_URL = '';
8
+ AdsConfiguration.EXTERNAL_ADS_ACTIVITY_MESSAGE_TYPE = '';
9
+ AdsConfiguration.personaIframePath = '';
10
+ AdsConfiguration.getAdsStackIframeURL = () => '';
11
+ AdsConfiguration.buildNativeAdsMeta = () => [];
12
+ AdsConfiguration.bannerAdsMeta = [];
13
+ export const configureAds = (config) => {
14
+ const { adsTwWindowUrl, tkeyInpageAdUrl, smallTkeyInpageAdUrl, swapTkeyUrl, externalAdsActivityMessageType, personaIframePath, getAdsStackIframeURL, buildNativeAdsMeta, bannerAdsMeta, extVersion, templePassphrase, isMisesBrowser } = config;
15
+ if (smallTkeyInpageAdUrl) {
16
+ AdsConfiguration.SMALL_TKEY_INPAGE_AD_URL = smallTkeyInpageAdUrl;
17
+ }
18
+ AdsConfiguration.ADS_TW_WINDOW_URL = adsTwWindowUrl;
19
+ AdsConfiguration.TKEY_INPAGE_AD_URL = tkeyInpageAdUrl;
20
+ AdsConfiguration.SWAP_TKEY_URL = swapTkeyUrl;
21
+ AdsConfiguration.EXTERNAL_ADS_ACTIVITY_MESSAGE_TYPE = externalAdsActivityMessageType;
22
+ AdsConfiguration.personaIframePath = personaIframePath;
23
+ AdsConfiguration.getAdsStackIframeURL = getAdsStackIframeURL;
24
+ AdsConfiguration.buildNativeAdsMeta = buildNativeAdsMeta;
25
+ AdsConfiguration.bannerAdsMeta = bannerAdsMeta;
26
+ AdsConfiguration.EXTENSION_VERSION = extVersion;
27
+ AdsConfiguration.TEMPLE_PASSPHRASE = templePassphrase;
28
+ AdsConfiguration.IS_MISES_BROWSER = isMisesBrowser;
29
+ };
30
+ //# sourceMappingURL=ads-configuration.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ads-configuration.js","sourceRoot":"","sources":["../src/ads-configuration.ts"],"names":[],"mappings":"AAiBA,MAAM,OAAO,gBAAgB;;AACpB,iCAAgB,GAAG,KAAK,CAAC;AACzB,kCAAiB,GAAG,EAAE,CAAC;AACvB,mCAAkB,GAAG,EAAE,CAAC;AACxB,yCAAwB,GAAG,EAAE,CAAC;AAC9B,8BAAa,GAAG,EAAE,CAAC;AACnB,mDAAkC,GAAG,EAAE,CAAC;AACxC,kCAAiB,GAA2C,EAAE,CAAC;AAC/D,qCAAoB,GAA8C,GAAG,EAAE,CAAC,EAAE,CAAC;AAC3E,mCAAkB,GAA4C,GAAG,EAAE,CAAC,EAAE,CAAC;AACvE,8BAAa,GAAiB,EAAE,CAAC;AAK1C,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,MAAyB,EAAE,EAAE;IACxD,MAAM,EACJ,cAAc,EACd,eAAe,EACf,oBAAoB,EACpB,WAAW,EACX,8BAA8B,EAC9B,iBAAiB,EACjB,oBAAoB,EACpB,kBAAkB,EAClB,aAAa,EACb,UAAU,EACV,gBAAgB,EAChB,cAAc,EACf,GAAG,MAAM,CAAC;IAEX,IAAI,oBAAoB,EAAE,CAAC;QACzB,gBAAgB,CAAC,wBAAwB,GAAG,oBAAoB,CAAC;IACnE,CAAC;IAED,gBAAgB,CAAC,iBAAiB,GAAG,cAAc,CAAC;IACpD,gBAAgB,CAAC,kBAAkB,GAAG,eAAe,CAAC;IACtD,gBAAgB,CAAC,aAAa,GAAG,WAAW,CAAC;IAC7C,gBAAgB,CAAC,kCAAkC,GAAG,8BAA8B,CAAC;IACrF,gBAAgB,CAAC,iBAAiB,GAAG,iBAAiB,CAAC;IACvD,gBAAgB,CAAC,oBAAoB,GAAG,oBAAoB,CAAC;IAC7D,gBAAgB,CAAC,kBAAkB,GAAG,kBAAkB,CAAC;IACzD,gBAAgB,CAAC,aAAa,GAAG,aAAa,CAAC;IAC/C,gBAAgB,CAAC,iBAAiB,GAAG,UAAU,CAAC;IAChD,gBAAgB,CAAC,iBAAiB,GAAG,gBAAgB,CAAC;IACtD,gBAAgB,CAAC,gBAAgB,GAAG,cAAc,CAAC;AACrD,CAAC,CAAC"}
@@ -0,0 +1,11 @@
1
+ export declare const TEMPLE_WALLET_AD_ATTRIBUTE_NAME = "twa";
2
+ export declare const TEMPLE_WALLET_NATIVE_AD_ATTRIBUTE_NAME = "twa-native";
3
+ export declare const SIBLING_REPLACEMENT_ATTRIBUTE_NAME = "twa-sibling-replacement";
4
+ export declare const AD_SEEN_THRESHOLD = 0.5;
5
+ export declare const AD_RENDER_START_MESSAGE_TYPE = "adRenderStart";
6
+ export declare const AD_RESIZE_MESSAGE_TYPE = "resize";
7
+ export declare const AD_READY_MESSAGE_TYPE = "ready";
8
+ export declare const AD_ERROR_MESSAGE_TYPE = "error";
9
+ export declare const IFRAME_ALLOWANCE = "accelerometer; gyroscope";
10
+ export declare const CRYPTO_CATEGORY_NAME = "crypto";
11
+ export declare const BACKGROUND_ELEMENT_ID = "background";
@@ -0,0 +1,12 @@
1
+ export const TEMPLE_WALLET_AD_ATTRIBUTE_NAME = 'twa';
2
+ export const TEMPLE_WALLET_NATIVE_AD_ATTRIBUTE_NAME = 'twa-native';
3
+ export const SIBLING_REPLACEMENT_ATTRIBUTE_NAME = 'twa-sibling-replacement';
4
+ export const AD_SEEN_THRESHOLD = 0.5;
5
+ export const AD_RENDER_START_MESSAGE_TYPE = 'adRenderStart';
6
+ export const AD_RESIZE_MESSAGE_TYPE = 'resize';
7
+ export const AD_READY_MESSAGE_TYPE = 'ready';
8
+ export const AD_ERROR_MESSAGE_TYPE = 'error';
9
+ export const IFRAME_ALLOWANCE = 'accelerometer; gyroscope';
10
+ export const CRYPTO_CATEGORY_NAME = 'crypto';
11
+ export const BACKGROUND_ELEMENT_ID = 'background';
12
+ //# sourceMappingURL=constants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,+BAA+B,GAAG,KAAK,CAAC;AACrD,MAAM,CAAC,MAAM,sCAAsC,GAAG,YAAY,CAAC;AACnE,MAAM,CAAC,MAAM,kCAAkC,GAAG,yBAAyB,CAAC;AAC5E,MAAM,CAAC,MAAM,iBAAiB,GAAG,GAAG,CAAC;AACrC,MAAM,CAAC,MAAM,4BAA4B,GAAG,eAAe,CAAC;AAC5D,MAAM,CAAC,MAAM,sBAAsB,GAAG,QAAQ,CAAC;AAC/C,MAAM,CAAC,MAAM,qBAAqB,GAAG,OAAO,CAAC;AAC7C,MAAM,CAAC,MAAM,qBAAqB,GAAG,OAAO,CAAC;AAC7C,MAAM,CAAC,MAAM,gBAAgB,GAAG,0BAA0B,CAAC;AAC3D,MAAM,CAAC,MAAM,oBAAoB,GAAG,QAAQ,CAAC;AAC7C,MAAM,CAAC,MAAM,qBAAqB,GAAG,YAAY,CAAC"}
@@ -0,0 +1,3 @@
1
+ export { makeTKeyAdView } from './make-tkey-ad';
2
+ export { makeAdsTwView } from './make-ads-tw-view';
3
+ export { makeExtensionIframeView } from './make-extension-iframe-view';
@@ -0,0 +1,4 @@
1
+ export { makeTKeyAdView } from './make-tkey-ad';
2
+ export { makeAdsTwView } from './make-ads-tw-view';
3
+ export { makeExtensionIframeView } from './make-extension-iframe-view';
4
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/execute-ads-actions/ads-views/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAChD,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { AdView } from 'src/types/ad-view';
2
+ import { AdDimensions, AdSource } from 'src/types/ads-meta';
3
+ export declare const makeAdsTwView: (id: string, source: AdSource, { width, height }: AdDimensions, origin: string) => AdView;
@@ -0,0 +1,40 @@
1
+ import { AES } from 'crypto-js';
2
+ import { AdsConfiguration } from 'src/ads-configuration';
3
+ import { IFRAME_ALLOWANCE } from 'src/constants';
4
+ export const makeAdsTwView = (id, source, { width, height }, origin) => {
5
+ const iframe = document.createElement('iframe');
6
+ iframe.id = id;
7
+ iframe.src = getAdsTwUrl(source, origin, width, height, iframe.id);
8
+ iframe.style.width = source.native ? '100%' : `${width}px`;
9
+ iframe.style.height = `${height}px`;
10
+ iframe.style.border = 'none';
11
+ iframe.allow = IFRAME_ALLOWANCE;
12
+ return { element: iframe };
13
+ };
14
+ /**
15
+ * Returns URL for ads.templewallet.com or its preview iframe
16
+ * @param placementType Placement type
17
+ * @param origin Full URL of the page
18
+ * @param width Frame width
19
+ * @param height Frame height
20
+ */
21
+ const getAdsTwUrl = (source, origin, width, height, id) => {
22
+ const { providerName, slug, native } = source;
23
+ const url = new URL(AdsConfiguration.ADS_TW_WINDOW_URL);
24
+ url.searchParams.set('ap', providerName.toLowerCase());
25
+ if (native) {
26
+ url.searchParams.set('vh', String(height));
27
+ }
28
+ else {
29
+ url.searchParams.set('w', String(width));
30
+ }
31
+ url.searchParams.set('h', String(height));
32
+ url.searchParams.set('p', slug);
33
+ url.searchParams.set('o', encryptWithAES(origin));
34
+ if (id) {
35
+ url.searchParams.set('id', id);
36
+ }
37
+ return url.toString();
38
+ };
39
+ const encryptWithAES = (text) => AES.encrypt(text, AdsConfiguration.TEMPLE_PASSPHRASE).toString();
40
+ //# sourceMappingURL=make-ads-tw-view.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"make-ads-tw-view.js","sourceRoot":"","sources":["../../../src/execute-ads-actions/ads-views/make-ads-tw-view.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,WAAW,CAAC;AAEhC,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAIjD,MAAM,CAAC,MAAM,aAAa,GAAG,CAC3B,EAAU,EACV,MAAgB,EAChB,EAAE,KAAK,EAAE,MAAM,EAAgB,EAC/B,MAAc,EACN,EAAE;IACV,MAAM,MAAM,GAAG,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;IAChD,MAAM,CAAC,EAAE,GAAG,EAAE,CAAC;IACf,MAAM,CAAC,GAAG,GAAG,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC;IACnE,MAAM,CAAC,KAAK,CAAC,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,KAAK,IAAI,CAAC;IAC3D,MAAM,CAAC,KAAK,CAAC,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC;IACpC,MAAM,CAAC,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC;IAC7B,MAAM,CAAC,KAAK,GAAG,gBAAgB,CAAC;IAEhC,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC;AAC7B,CAAC,CAAC;AAEF;;;;;;GAMG;AACH,MAAM,WAAW,GAAG,CAAC,MAAgB,EAAE,MAAc,EAAE,KAAa,EAAE,MAAc,EAAE,EAAU,EAAE,EAAE;IAClG,MAAM,EAAE,YAAY,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,MAAM,CAAC;IAC9C,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,gBAAgB,CAAC,iBAAiB,CAAC,CAAC;IACxD,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,EAAE,YAAY,CAAC,WAAW,EAAE,CAAC,CAAC;IACvD,IAAI,MAAM,EAAE,CAAC;QACX,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;IAC7C,CAAC;SAAM,CAAC;QACN,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;IAC3C,CAAC;IACD,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;IAC1C,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;IAChC,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,GAAG,EAAE,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC;IAClD,IAAI,EAAE,EAAE,CAAC;QACP,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;IACjC,CAAC;IAED,OAAO,GAAG,CAAC,QAAQ,EAAE,CAAC;AACxB,CAAC,CAAC;AAEF,MAAM,cAAc,GAAG,CAAC,IAAY,EAAE,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,gBAAgB,CAAC,iBAAiB,CAAC,CAAC,QAAQ,EAAE,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { AdView } from 'src/types/ad-view';
2
+ import { AdDimensions, AdSource } from 'src/types/ads-meta';
3
+ export declare const makeExtensionIframeView: (id: string, source: AdSource, { width, height }: AdDimensions) => AdView;
@@ -0,0 +1,22 @@
1
+ import { AdsConfiguration } from 'src/ads-configuration';
2
+ export const makeExtensionIframeView = (id, source, { width, height }) => {
3
+ const element = document.createElement('iframe');
4
+ let iframePath = '';
5
+ switch (source.providerName) {
6
+ case 'Persona':
7
+ iframePath = AdsConfiguration.personaIframePath;
8
+ break;
9
+ default:
10
+ throw new Error(`Ads from ${source.providerName} are unavailable via extension iframe`);
11
+ }
12
+ const iframeUrl = new URL(iframePath);
13
+ iframeUrl.searchParams.set('id', id);
14
+ iframeUrl.searchParams.set('slug', source.slug);
15
+ element.src = iframeUrl.toString();
16
+ element.id = id;
17
+ element.style.width = `${width}px`;
18
+ element.style.height = `${height}px`;
19
+ element.style.border = 'none';
20
+ return { element };
21
+ };
22
+ //# sourceMappingURL=make-extension-iframe-view.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"make-extension-iframe-view.js","sourceRoot":"","sources":["../../../src/execute-ads-actions/ads-views/make-extension-iframe-view.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAIzD,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,EAAU,EAAE,MAAgB,EAAE,EAAE,KAAK,EAAE,MAAM,EAAgB,EAAU,EAAE;IAC/G,MAAM,OAAO,GAAG,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;IACjD,IAAI,UAAU,GAAG,EAAE,CAAC;IACpB,QAAQ,MAAM,CAAC,YAAY,EAAE,CAAC;QAC5B,KAAK,SAAS;YACZ,UAAU,GAAG,gBAAgB,CAAC,iBAAiB,CAAC;YAChD,MAAM;QACR;YACE,MAAM,IAAI,KAAK,CAAC,YAAY,MAAM,CAAC,YAAY,uCAAuC,CAAC,CAAC;IAC5F,CAAC;IACD,MAAM,SAAS,GAAG,IAAI,GAAG,CAAC,UAAU,CAAC,CAAC;IACtC,SAAS,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;IACrC,SAAS,CAAC,YAAY,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;IAChD,OAAO,CAAC,GAAG,GAAG,SAAS,CAAC,QAAQ,EAAE,CAAC;IACnC,OAAO,CAAC,EAAE,GAAG,EAAE,CAAC;IAEhB,OAAO,CAAC,KAAK,CAAC,KAAK,GAAG,GAAG,KAAK,IAAI,CAAC;IACnC,OAAO,CAAC,KAAK,CAAC,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC;IACrC,OAAO,CAAC,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC;IAE9B,OAAO,EAAE,OAAO,EAAE,CAAC;AACrB,CAAC,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { AdView } from 'src/types/ad-view';
2
+ /** Native variant and small variant should be used only for testing */
3
+ export declare const makeTKeyAdView: (width: number, height: number, isNative?: boolean) => AdView;
@@ -0,0 +1,38 @@
1
+ import { AdsConfiguration } from 'src/ads-configuration';
2
+ /** Native variant and small variant should be used only for testing */
3
+ export const makeTKeyAdView = (width, height, isNative = false) => {
4
+ const element = document.createElement('div');
5
+ element.style.width = `${width}px`;
6
+ element.style.height = `${height}px`;
7
+ const div = document.createElement('div');
8
+ div.style.width = `${width}px`;
9
+ div.style.height = `${height}px`;
10
+ element.appendChild(div);
11
+ if (isNative) {
12
+ const anchor = document.createElement('a');
13
+ anchor.href = AdsConfiguration.SWAP_TKEY_URL;
14
+ anchor.target = '_blank';
15
+ anchor.rel = 'noopener noreferrer';
16
+ anchor.style.width = `${width}px`;
17
+ anchor.style.height = `${height}px`;
18
+ anchor.style.overflow = 'hidden';
19
+ anchor.style.textOverflow = 'ellipsis';
20
+ anchor.appendChild(document.createTextNode('TODO: Native TKEY ad'));
21
+ div.appendChild(anchor);
22
+ return { element };
23
+ }
24
+ const anchor = document.createElement('a');
25
+ anchor.href = AdsConfiguration.SWAP_TKEY_URL;
26
+ anchor.target = '_blank';
27
+ anchor.rel = 'noopener noreferrer';
28
+ anchor.style.width = '100%';
29
+ anchor.style.height = '100%';
30
+ div.appendChild(anchor);
31
+ const img = document.createElement('img');
32
+ img.src = width <= 320 ? AdsConfiguration.SMALL_TKEY_INPAGE_AD_URL : AdsConfiguration.TKEY_INPAGE_AD_URL;
33
+ img.style.width = '100%';
34
+ img.style.height = '100%';
35
+ anchor.appendChild(img);
36
+ return { element, creativeSet: { image: { url: img.src } } };
37
+ };
38
+ //# sourceMappingURL=make-tkey-ad.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"make-tkey-ad.js","sourceRoot":"","sources":["../../../src/execute-ads-actions/ads-views/make-tkey-ad.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAGzD,uEAAuE;AACvE,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,KAAa,EAAE,MAAc,EAAE,QAAQ,GAAG,KAAK,EAAU,EAAE;IACxF,MAAM,OAAO,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;IAC9C,OAAO,CAAC,KAAK,CAAC,KAAK,GAAG,GAAG,KAAK,IAAI,CAAC;IACnC,OAAO,CAAC,KAAK,CAAC,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC;IAErC,MAAM,GAAG,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;IAC1C,GAAG,CAAC,KAAK,CAAC,KAAK,GAAG,GAAG,KAAK,IAAI,CAAC;IAC/B,GAAG,CAAC,KAAK,CAAC,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC;IAEjC,OAAO,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;IAEzB,IAAI,QAAQ,EAAE,CAAC;QACb,MAAM,MAAM,GAAG,QAAQ,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;QAC3C,MAAM,CAAC,IAAI,GAAG,gBAAgB,CAAC,aAAa,CAAC;QAC7C,MAAM,CAAC,MAAM,GAAG,QAAQ,CAAC;QACzB,MAAM,CAAC,GAAG,GAAG,qBAAqB,CAAC;QACnC,MAAM,CAAC,KAAK,CAAC,KAAK,GAAG,GAAG,KAAK,IAAI,CAAC;QAClC,MAAM,CAAC,KAAK,CAAC,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC;QACpC,MAAM,CAAC,KAAK,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACjC,MAAM,CAAC,KAAK,CAAC,YAAY,GAAG,UAAU,CAAC;QACvC,MAAM,CAAC,WAAW,CAAC,QAAQ,CAAC,cAAc,CAAC,sBAAsB,CAAC,CAAC,CAAC;QACpE,GAAG,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;QAExB,OAAO,EAAE,OAAO,EAAE,CAAC;IACrB,CAAC;IAED,MAAM,MAAM,GAAG,QAAQ,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;IAC3C,MAAM,CAAC,IAAI,GAAG,gBAAgB,CAAC,aAAa,CAAC;IAC7C,MAAM,CAAC,MAAM,GAAG,QAAQ,CAAC;IACzB,MAAM,CAAC,GAAG,GAAG,qBAAqB,CAAC;IACnC,MAAM,CAAC,KAAK,CAAC,KAAK,GAAG,MAAM,CAAC;IAC5B,MAAM,CAAC,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC;IAC7B,GAAG,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;IAExB,MAAM,GAAG,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;IAC1C,GAAG,CAAC,GAAG,GAAG,KAAK,IAAI,GAAG,CAAC,CAAC,CAAC,gBAAgB,CAAC,wBAAwB,CAAC,CAAC,CAAC,gBAAgB,CAAC,kBAAkB,CAAC;IACzG,GAAG,CAAC,KAAK,CAAC,KAAK,GAAG,MAAM,CAAC;IACzB,GAAG,CAAC,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC;IAC1B,MAAM,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;IAExB,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,EAAE,KAAK,EAAE,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,EAAE,EAAE,CAAC;AAC/D,CAAC,CAAC"}
@@ -0,0 +1,2 @@
1
+ import { AdAction } from 'src/types/ads-actions';
2
+ export declare const executeAdsActions: (adsActions: AdAction[]) => Promise<PromiseSettledResult<void>[]>;
@@ -0,0 +1,23 @@
1
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
3
+ return new (P || (P = Promise))(function (resolve, reject) {
4
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
5
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
6
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
7
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
8
+ });
9
+ };
10
+ import { AdActionType } from 'src/types/ads-actions';
11
+ import { processInsertAdAction } from './process-insert-ad-action';
12
+ export const executeAdsActions = (adsActions) => Promise.allSettled(adsActions.map((action) => __awaiter(void 0, void 0, void 0, function* () {
13
+ if (action.type === AdActionType.RemoveElement) {
14
+ action.element.remove();
15
+ }
16
+ else if (action.type === AdActionType.HideElement) {
17
+ action.element.style.setProperty('display', 'none', 'important');
18
+ }
19
+ else {
20
+ yield processInsertAdAction(action);
21
+ }
22
+ })));
23
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/execute-ads-actions/index.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAY,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAE/D,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AAEnE,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,UAAsB,EAAE,EAAE,CAC1D,OAAO,CAAC,UAAU,CAChB,UAAU,CAAC,GAAG,CAAC,CAAM,MAAM,EAAC,EAAE;IAC5B,IAAI,MAAM,CAAC,IAAI,KAAK,YAAY,CAAC,aAAa,EAAE,CAAC;QAC/C,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;IAC1B,CAAC;SAAM,IAAI,MAAM,CAAC,IAAI,KAAK,YAAY,CAAC,WAAW,EAAE,CAAC;QACpD,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,WAAW,CAAC,SAAS,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC;IACnE,CAAC;SAAM,CAAC;QACN,MAAM,qBAAqB,CAAC,MAAM,CAAC,CAAC;IACtC,CAAC;AACH,CAAC,CAAA,CAAC,CACH,CAAC"}
@@ -0,0 +1 @@
1
+ export declare const subscribeToAdsStackIframeLoadIfNecessary: (element: HTMLIFrameElement) => Promise<void>;
@@ -0,0 +1,129 @@
1
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
3
+ return new (P || (P = Promise))(function (resolve, reject) {
4
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
5
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
6
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
7
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
8
+ });
9
+ };
10
+ import browser from 'webextension-polyfill';
11
+ import { extendOrKeepDimension } from 'src/ads-actions/helpers';
12
+ import { AdsConfiguration } from 'src/ads-configuration';
13
+ import { AD_ERROR_MESSAGE_TYPE, AD_READY_MESSAGE_TYPE, AD_RENDER_START_MESSAGE_TYPE, AD_RESIZE_MESSAGE_TYPE, AD_SEEN_THRESHOLD } from 'src/constants';
14
+ import { AdsProviderTitle } from 'src/types/ads-provider';
15
+ const loadingAdsIds = new Set();
16
+ const loadedAdsIds = new Set();
17
+ const alreadySentAnalyticsAdsIds = new Set();
18
+ export const subscribeToAdsStackIframeLoadIfNecessary = (element) => __awaiter(void 0, void 0, void 0, function* () {
19
+ const adId = element.id;
20
+ if (loadingAdsIds.has(adId)) {
21
+ return;
22
+ }
23
+ loadingAdsIds.add(adId);
24
+ return new Promise((resolve, reject) => {
25
+ const messageListener = (event) => {
26
+ var _a, _b;
27
+ if (event.source !== element.contentWindow)
28
+ return;
29
+ try {
30
+ const data = typeof event.data === 'string' ? JSON.parse(event.data) : event.data;
31
+ if (data.id !== adId)
32
+ return;
33
+ const horizontalBordersWidth = element.offsetWidth - element.clientWidth;
34
+ const verticalBordersWidth = element.offsetHeight - element.clientHeight;
35
+ switch (data.type) {
36
+ case AD_READY_MESSAGE_TYPE:
37
+ resolve(data.adMetadata.source.providerName);
38
+ break;
39
+ case AD_ERROR_MESSAGE_TYPE:
40
+ window.removeEventListener('message', messageListener);
41
+ element.style.display = 'none';
42
+ reject(new Error((_a = data.reason) !== null && _a !== void 0 ? _a : 'Unknown error'));
43
+ break;
44
+ case AD_RENDER_START_MESSAGE_TYPE:
45
+ const { dimensions, source } = data.adMetadata;
46
+ const { width, height } = dimensions;
47
+ if (width > 0 && height > 0) {
48
+ if (source.native) {
49
+ element.style.height = `${height}px`;
50
+ }
51
+ else {
52
+ extendOrKeepDimension(element, 'width', width);
53
+ extendOrKeepDimension(element, 'height', height);
54
+ }
55
+ }
56
+ break;
57
+ case AD_RESIZE_MESSAGE_TYPE:
58
+ const { width: newWidth, height: newHeight } = data;
59
+ if ((_b = element.style.width) === null || _b === void 0 ? void 0 : _b.endsWith('%')) {
60
+ element.style.height = `${newHeight + verticalBordersWidth}px`;
61
+ }
62
+ else {
63
+ extendOrKeepDimension(element, 'width', newWidth + horizontalBordersWidth);
64
+ extendOrKeepDimension(element, 'height', newHeight + verticalBordersWidth);
65
+ }
66
+ }
67
+ }
68
+ catch (error) {
69
+ console.error('Observing error:', error);
70
+ }
71
+ };
72
+ window.addEventListener('message', messageListener);
73
+ })
74
+ .then(providerName => {
75
+ if (loadedAdsIds.has(adId))
76
+ return;
77
+ loadedAdsIds.add(adId);
78
+ const adIsSeen = adRectIsSeen(element);
79
+ if (adIsSeen) {
80
+ sendExternalAdsActivity(adId, providerName);
81
+ }
82
+ else {
83
+ observeIntersection(element, providerName);
84
+ }
85
+ })
86
+ .catch(e => {
87
+ console.error(e);
88
+ throw e;
89
+ })
90
+ .finally(() => void loadingAdsIds.delete(adId));
91
+ });
92
+ const observeIntersection = (element, providerName) => {
93
+ const observer = new IntersectionObserver(entries => {
94
+ if (entries.some(entry => entry.isIntersecting)) {
95
+ sendExternalAdsActivity(element.id, providerName);
96
+ observer.disconnect();
97
+ }
98
+ }, { threshold: AD_SEEN_THRESHOLD });
99
+ observer.observe(element);
100
+ };
101
+ const sendExternalAdsActivity = (adId, providerName) => {
102
+ if (alreadySentAnalyticsAdsIds.has(adId)) {
103
+ return;
104
+ }
105
+ alreadySentAnalyticsAdsIds.add(adId);
106
+ const url = window.parent.location.href;
107
+ browser.runtime
108
+ .sendMessage({
109
+ type: AdsConfiguration.EXTERNAL_ADS_ACTIVITY_MESSAGE_TYPE,
110
+ url,
111
+ provider: AdsProviderTitle[providerName]
112
+ })
113
+ .catch(err => void console.error(err));
114
+ };
115
+ const adRectIsSeen = (element) => {
116
+ const elementRect = element.getBoundingClientRect();
117
+ const viewport = window.visualViewport;
118
+ if (!viewport) {
119
+ return false;
120
+ }
121
+ const intersectionX0 = Math.min(Math.max(0, elementRect.x), viewport.width);
122
+ const intersectionX1 = Math.min(Math.max(0, elementRect.x + elementRect.width), viewport.width);
123
+ const intersectionY0 = Math.min(Math.max(0, elementRect.y), viewport.height);
124
+ const intersectionY1 = Math.min(Math.max(0, elementRect.y + elementRect.height), viewport.height);
125
+ const elementArea = elementRect.width * elementRect.height;
126
+ const intersectionArea = (intersectionX1 - intersectionX0) * (intersectionY1 - intersectionY0);
127
+ return intersectionArea / elementArea >= AD_SEEN_THRESHOLD;
128
+ };
129
+ //# sourceMappingURL=observing.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"observing.js","sourceRoot":"","sources":["../../src/execute-ads-actions/observing.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ import { StringRecord } from 'src/utils';
2
+ export declare const overrideElementStyles: (element: HTMLElement, overrides: StringRecord) => void;
@@ -0,0 +1,6 @@
1
+ export const overrideElementStyles = (element, overrides) => {
2
+ for (const stylePropName in overrides) {
3
+ element.style.setProperty(stylePropName, overrides[stylePropName]);
4
+ }
5
+ };
6
+ //# sourceMappingURL=override-element-styles.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"override-element-styles.js","sourceRoot":"","sources":["../../src/execute-ads-actions/override-element-styles.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,OAAoB,EAAE,SAAuB,EAAE,EAAE;IACrF,KAAK,MAAM,aAAa,IAAI,SAAS,EAAE,CAAC;QACtC,OAAO,CAAC,KAAK,CAAC,WAAW,CAAC,aAAa,EAAE,SAAS,CAAC,aAAa,CAAC,CAAC,CAAC;IACrE,CAAC;AACH,CAAC,CAAC"}
@@ -0,0 +1,2 @@
1
+ import { InsertAdAction } from 'src/types/ads-actions';
2
+ export declare const processInsertAdAction: (action: InsertAdAction) => Promise<void>;