@capgo/capacitor-admob 8.1.21 → 8.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (44) hide show
  1. package/CapgoCapacitorAdmob.podspec +1 -0
  2. package/Package.swift +4 -2
  3. package/README.md +327 -8
  4. package/android/build.gradle +3 -2
  5. package/android/src/main/kotlin/admob/plus/capacitor/AdMobPlusPlugin.kt +121 -0
  6. package/android/src/main/kotlin/admob/plus/capacitor/ConsentHelper.kt +140 -0
  7. package/android/src/main/kotlin/admob/plus/capacitor/Generated.kt +7 -0
  8. package/android/src/main/kotlin/admob/plus/capacitor/feed/FeedAdManager.kt +512 -0
  9. package/android/src/main/kotlin/admob/plus/core/Ad.kt +2 -4
  10. package/android/src/main/kotlin/admob/plus/core/Helper.kt +18 -1
  11. package/dist/docs.json +543 -5
  12. package/dist/esm/definitions.d.ts +284 -1
  13. package/dist/esm/definitions.js +55 -0
  14. package/dist/esm/definitions.js.map +1 -1
  15. package/dist/esm/events.d.ts +127 -0
  16. package/dist/esm/events.js +50 -0
  17. package/dist/esm/events.js.map +1 -0
  18. package/dist/esm/feed-ad.d.ts +32 -0
  19. package/dist/esm/feed-ad.js +133 -0
  20. package/dist/esm/feed-ad.js.map +1 -0
  21. package/dist/esm/index.d.ts +4 -2
  22. package/dist/esm/index.js +4 -32
  23. package/dist/esm/index.js.map +1 -1
  24. package/dist/esm/plugin-instance.d.ts +3 -0
  25. package/dist/esm/plugin-instance.js +35 -0
  26. package/dist/esm/plugin-instance.js.map +1 -0
  27. package/dist/esm/web.d.ts +11 -1
  28. package/dist/esm/web.js +40 -0
  29. package/dist/esm/web.js.map +1 -1
  30. package/dist/plugin.cjs.js +313 -31
  31. package/dist/plugin.cjs.js.map +1 -1
  32. package/dist/plugin.js +313 -31
  33. package/dist/plugin.js.map +1 -1
  34. package/ios/Sources/AdmobPlusPlugin/AdmobPlusPlugin.swift +131 -1
  35. package/ios/Sources/AdmobPlusPlugin/BannerAd.swift +6 -9
  36. package/ios/Sources/AdmobPlusPlugin/ConsentExecutor.swift +100 -0
  37. package/ios/Sources/AdmobPlusPlugin/FeedAdManager.swift +435 -0
  38. package/ios/Sources/AdmobPlusPlugin/Generated.swift +7 -0
  39. package/ios/Sources/AdmobPlusPlugin/Helper.swift +29 -0
  40. package/ios/Sources/AdmobPlusPlugin/InterstitialAd.swift +7 -13
  41. package/ios/Sources/AdmobPlusPlugin/RewardedAd.swift +13 -20
  42. package/ios/Sources/AdmobPlusPlugin/RewardedInterstitialAd.swift +13 -20
  43. package/ios/Tests/AdmobPlusPluginTests/AdmobPlusPluginTests.swift +3 -6
  44. package/package.json +2 -2
@@ -2,6 +2,40 @@
2
2
 
3
3
  var core = require('@capacitor/core');
4
4
 
5
+ const AdMob = core.registerPlugin('AdMobPlus', {
6
+ web: () => Promise.resolve().then(function () { return web; }).then((m) => new m.AdMobPlusWeb()),
7
+ });
8
+ let started = false;
9
+ let startPromise = null;
10
+ const start = AdMob.start.bind(AdMob);
11
+ const ensureAdMobStarted = async () => {
12
+ if (started)
13
+ return;
14
+ if (startPromise === null) {
15
+ startPromise = start()
16
+ .then((result) => {
17
+ started = true;
18
+ return result;
19
+ })
20
+ .catch((error) => {
21
+ startPromise = null;
22
+ throw error;
23
+ });
24
+ }
25
+ return startPromise;
26
+ };
27
+ AdMob.start = ensureAdMobStarted;
28
+ const adIsLoaded = AdMob.adIsLoaded.bind(AdMob);
29
+ AdMob.adIsLoaded = (async (...args) => {
30
+ const result = (await adIsLoaded(...args));
31
+ return typeof result === 'boolean' ? result : result.value === true;
32
+ });
33
+ const feedAdIsLoaded = AdMob.feedAdIsLoaded.bind(AdMob);
34
+ AdMob.feedAdIsLoaded = (async (...args) => {
35
+ const result = (await feedAdIsLoaded(...args));
36
+ return typeof result === 'boolean' ? result : result.value === true;
37
+ });
38
+
5
39
  /**
6
40
  * Maximum ad content rating enum used to restrict ads based on content rating.
7
41
  *
@@ -20,6 +54,61 @@ exports.MaxAdContentRating = void 0;
20
54
  /** Unspecified rating */
21
55
  MaxAdContentRating["UNSPECIFIED"] = "";
22
56
  })(exports.MaxAdContentRating || (exports.MaxAdContentRating = {}));
57
+ /**
58
+ * Consent status from Google's User Messaging Platform (UMP).
59
+ *
60
+ * @see https://developers.google.com/admob/ump/android/reference/com/google/android/ump/ConsentInformation.ConsentStatus
61
+ * @since 8.2.0
62
+ */
63
+ exports.AdmobConsentStatus = void 0;
64
+ (function (AdmobConsentStatus) {
65
+ /** User consent not required. */
66
+ AdmobConsentStatus["NOT_REQUIRED"] = "NOT_REQUIRED";
67
+ /** User consent already obtained. */
68
+ AdmobConsentStatus["OBTAINED"] = "OBTAINED";
69
+ /** User consent required but not yet obtained. */
70
+ AdmobConsentStatus["REQUIRED"] = "REQUIRED";
71
+ /** Unknown consent status. Call requestConsentInfo() to update it. */
72
+ AdmobConsentStatus["UNKNOWN"] = "UNKNOWN";
73
+ })(exports.AdmobConsentStatus || (exports.AdmobConsentStatus = {}));
74
+ /**
75
+ * Privacy options requirement status from UMP.
76
+ *
77
+ * @see https://developers.google.com/admob/ump/android/reference/com/google/android/ump/ConsentInformation.PrivacyOptionsRequirementStatus
78
+ * @since 8.2.0
79
+ */
80
+ exports.PrivacyOptionsRequirementStatus = void 0;
81
+ (function (PrivacyOptionsRequirementStatus) {
82
+ /** Privacy options entry point is not required. */
83
+ PrivacyOptionsRequirementStatus["NOT_REQUIRED"] = "NOT_REQUIRED";
84
+ /** Privacy options entry point is required. */
85
+ PrivacyOptionsRequirementStatus["REQUIRED"] = "REQUIRED";
86
+ /** Privacy options requirement status is unknown. */
87
+ PrivacyOptionsRequirementStatus["UNKNOWN"] = "UNKNOWN";
88
+ })(exports.PrivacyOptionsRequirementStatus || (exports.PrivacyOptionsRequirementStatus = {}));
89
+ /**
90
+ * Debug geography for testing UMP consent flows locally.
91
+ *
92
+ * @see https://developers.google.com/admob/ump/android/reference/com/google/android/ump/ConsentDebugSettings.DebugGeography
93
+ * @since 8.2.0
94
+ */
95
+ exports.AdmobConsentDebugGeography = void 0;
96
+ (function (AdmobConsentDebugGeography) {
97
+ /** Debug geography disabled. */
98
+ AdmobConsentDebugGeography[AdmobConsentDebugGeography["DISABLED"] = 0] = "DISABLED";
99
+ /** Geography appears as in EEA for debug devices. */
100
+ AdmobConsentDebugGeography[AdmobConsentDebugGeography["EEA"] = 1] = "EEA";
101
+ /**
102
+ * Geography appears as not in EEA for debug devices.
103
+ *
104
+ * @deprecated Use OTHER instead.
105
+ */
106
+ AdmobConsentDebugGeography[AdmobConsentDebugGeography["NOT_EEA"] = 2] = "NOT_EEA";
107
+ /** Geography appears as in a regulated US state for debug devices. */
108
+ AdmobConsentDebugGeography[AdmobConsentDebugGeography["US"] = 3] = "US";
109
+ /** Geography appears as OTHER for debug devices. */
110
+ AdmobConsentDebugGeography[AdmobConsentDebugGeography["OTHER"] = 4] = "OTHER";
111
+ })(exports.AdmobConsentDebugGeography || (exports.AdmobConsentDebugGeography = {}));
23
112
  /**
24
113
  * Tracking authorization status for iOS App Tracking Transparency.
25
114
  *
@@ -37,6 +126,186 @@ exports.TrackingAuthorizationStatus = void 0;
37
126
  TrackingAuthorizationStatus[TrackingAuthorizationStatus["authorized"] = 3] = "authorized";
38
127
  })(exports.TrackingAuthorizationStatus || (exports.TrackingAuthorizationStatus = {}));
39
128
 
129
+ /**
130
+ * Typed event name constants for {@link AdMobPlusPlugin.addListener}.
131
+ *
132
+ * @since 8.2.0
133
+ */
134
+ const AdMobPlusEvents = {
135
+ AdClick: 'ad.click',
136
+ AdDismiss: 'ad.dismiss',
137
+ AdImpression: 'ad.impression',
138
+ AdLoad: 'ad.load',
139
+ AdLoadFail: 'ad.loadfail',
140
+ AdReward: 'ad.reward',
141
+ AdShow: 'ad.show',
142
+ AdShowFail: 'ad.showfail',
143
+ BannerClick: 'banner.click',
144
+ BannerClose: 'banner.close',
145
+ BannerImpression: 'banner.impression',
146
+ BannerLoad: 'banner.load',
147
+ BannerLoadFail: 'banner.loadfail',
148
+ BannerOpen: 'banner.open',
149
+ BannerSizeChange: 'banner.sizechange',
150
+ InterstitialDismiss: 'interstitial.dismiss',
151
+ InterstitialImpression: 'interstitial.impression',
152
+ InterstitialLoad: 'interstitial.load',
153
+ InterstitialLoadFail: 'interstitial.loadfail',
154
+ InterstitialShow: 'interstitial.show',
155
+ InterstitialShowFail: 'interstitial.showfail',
156
+ RewardedDismiss: 'rewarded.dismiss',
157
+ RewardedImpression: 'rewarded.impression',
158
+ RewardedInterstitialDismiss: 'rewardedi.dismiss',
159
+ RewardedInterstitialImpression: 'rewardedi.impression',
160
+ RewardedInterstitialLoad: 'rewardedi.load',
161
+ RewardedInterstitialLoadFail: 'rewardedi.loadfail',
162
+ RewardedInterstitialReward: 'rewardedi.reward',
163
+ RewardedInterstitialShow: 'rewardedi.show',
164
+ RewardedInterstitialShowFail: 'rewardedi.showfail',
165
+ RewardedLoad: 'rewarded.load',
166
+ RewardedLoadFail: 'rewarded.loadfail',
167
+ RewardedReward: 'rewarded.reward',
168
+ RewardedShow: 'rewarded.show',
169
+ RewardedShowFail: 'rewarded.showfail',
170
+ FeedClick: 'feed.click',
171
+ FeedClose: 'feed.close',
172
+ FeedImpression: 'feed.impression',
173
+ FeedLoad: 'feed.load',
174
+ FeedLoadFail: 'feed.loadfail',
175
+ FeedOpen: 'feed.open',
176
+ FeedRefresh: 'feed.refresh',
177
+ };
178
+
179
+ const MIN_AUTO_REFRESH_MS = 30000;
180
+ /**
181
+ * High-level helper for in-feed native or banner ads.
182
+ *
183
+ * Policy: impressions and clicks are recorded only on the native overlay
184
+ * ({@link https://developers.google.com/admob/android/native/advanced | NativeAdView} /
185
+ * GADNativeAdView). Use a placeholder element in your HTML feed and call
186
+ * {@link FeedAd.attachTo} so the plugin keeps the overlay aligned on scroll and resize.
187
+ */
188
+ class FeedAd {
189
+ constructor(opts) {
190
+ this.id = null;
191
+ this.createPromise = null;
192
+ this.stopSync = null;
193
+ if (opts.autoRefreshMs !== undefined && opts.autoRefreshMs !== null && opts.autoRefreshMs < MIN_AUTO_REFRESH_MS) {
194
+ throw new Error(`autoRefreshMs must be at least ${MIN_AUTO_REFRESH_MS}`);
195
+ }
196
+ this.opts = opts;
197
+ }
198
+ get feedAdId() {
199
+ return this.id;
200
+ }
201
+ async create() {
202
+ var _a;
203
+ if (this.id !== null) {
204
+ return this.id;
205
+ }
206
+ (_a = this.createPromise) !== null && _a !== void 0 ? _a : (this.createPromise = (async () => {
207
+ await ensureAdMobStarted();
208
+ const result = await AdMob.feedAdCreate(this.opts);
209
+ this.id = result.id;
210
+ return result.id;
211
+ })().finally(() => {
212
+ this.createPromise = null;
213
+ }));
214
+ return this.createPromise;
215
+ }
216
+ async load() {
217
+ const id = await this.create();
218
+ await AdMob.feedAdLoad({ id });
219
+ }
220
+ async isLoaded() {
221
+ if (this.id === null) {
222
+ return false;
223
+ }
224
+ return AdMob.feedAdIsLoaded({ id: this.id });
225
+ }
226
+ /**
227
+ * Load the ad (if needed) and keep a native ad view aligned with `element`.
228
+ */
229
+ async attachTo(element) {
230
+ await this.load();
231
+ this.startBoundsSync(element);
232
+ await this.pushBounds(element);
233
+ }
234
+ async updatePosition(bounds) {
235
+ const id = await this.create();
236
+ await AdMob.feedAdUpdateBounds(Object.assign({ id }, bounds));
237
+ }
238
+ async setAutoRefresh(autoRefreshMs) {
239
+ if (autoRefreshMs !== null && autoRefreshMs < MIN_AUTO_REFRESH_MS) {
240
+ throw new Error(`autoRefreshMs must be at least ${MIN_AUTO_REFRESH_MS}`);
241
+ }
242
+ const id = await this.create();
243
+ await AdMob.feedAdSetAutoRefresh({ id, autoRefreshMs });
244
+ }
245
+ async destroy() {
246
+ this.stopBoundsSync();
247
+ if (this.id !== null) {
248
+ await AdMob.feedAdDestroy({ id: this.id });
249
+ this.id = null;
250
+ }
251
+ }
252
+ startBoundsSync(element) {
253
+ this.stopBoundsSync();
254
+ const onChange = () => {
255
+ void this.pushBounds(element);
256
+ };
257
+ const scrollTargets = [window];
258
+ let parent = element.parentElement;
259
+ while (parent) {
260
+ scrollTargets.push(parent);
261
+ parent = parent.parentElement;
262
+ }
263
+ scrollTargets.forEach((target) => {
264
+ target.addEventListener('scroll', onChange, { passive: true });
265
+ });
266
+ window.addEventListener('resize', onChange, { passive: true });
267
+ window.addEventListener('orientationchange', onChange);
268
+ let resizeObserver;
269
+ if (typeof ResizeObserver !== 'undefined') {
270
+ resizeObserver = new ResizeObserver(onChange);
271
+ resizeObserver.observe(element);
272
+ }
273
+ this.stopSync = () => {
274
+ scrollTargets.forEach((target) => {
275
+ target.removeEventListener('scroll', onChange);
276
+ });
277
+ window.removeEventListener('resize', onChange);
278
+ window.removeEventListener('orientationchange', onChange);
279
+ resizeObserver === null || resizeObserver === void 0 ? void 0 : resizeObserver.disconnect();
280
+ };
281
+ }
282
+ stopBoundsSync() {
283
+ var _a;
284
+ (_a = this.stopSync) === null || _a === void 0 ? void 0 : _a.call(this);
285
+ this.stopSync = null;
286
+ }
287
+ async pushBounds(element) {
288
+ if (this.id === null) {
289
+ return;
290
+ }
291
+ const rect = element.getBoundingClientRect();
292
+ const visible = rect.width > 0 &&
293
+ rect.height > 0 &&
294
+ rect.bottom > 0 &&
295
+ rect.top < (window.innerHeight || document.documentElement.clientHeight);
296
+ const density = core.Capacitor.isNativePlatform() ? window.devicePixelRatio || 1 : 1;
297
+ await AdMob.feedAdUpdateBounds({
298
+ id: this.id,
299
+ x: rect.left,
300
+ y: rect.top,
301
+ width: rect.width,
302
+ height: rect.height,
303
+ visible,
304
+ density,
305
+ });
306
+ }
307
+ }
308
+
40
309
  var __classPrivateFieldGet = (undefined && undefined.__classPrivateFieldGet) || function (receiver, state, kind, f) {
41
310
  if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
42
311
  if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
@@ -49,34 +318,6 @@ var __classPrivateFieldSet = (undefined && undefined.__classPrivateFieldSet) ||
49
318
  return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
50
319
  };
51
320
  var _MobileAd_created, _MobileAd_init, _BannerAd_loaded;
52
- const AdMob = core.registerPlugin('AdMobPlus', {
53
- web: () => Promise.resolve().then(function () { return web; }).then((m) => new m.AdMobPlusWeb()),
54
- });
55
- let started = false;
56
- let startPromise = null;
57
- const start = AdMob.start.bind(AdMob);
58
- const ensureStarted = async () => {
59
- if (started)
60
- return;
61
- if (startPromise === null) {
62
- startPromise = start()
63
- .then((result) => {
64
- started = true;
65
- return result;
66
- })
67
- .catch((error) => {
68
- startPromise = null;
69
- throw error;
70
- });
71
- }
72
- return startPromise;
73
- };
74
- AdMob.start = ensureStarted;
75
- const adIsLoaded = AdMob.adIsLoaded.bind(AdMob);
76
- AdMob.adIsLoaded = (async (...args) => {
77
- const result = (await adIsLoaded(...args));
78
- return typeof result === 'boolean' ? result : result.value === true;
79
- });
80
321
  class MobileAd {
81
322
  constructor(opts) {
82
323
  _MobileAd_created.set(this, false);
@@ -112,9 +353,7 @@ class MobileAd {
112
353
  var _a;
113
354
  if (__classPrivateFieldGet(this, _MobileAd_created, "f"))
114
355
  return;
115
- if (!started) {
116
- await ensureStarted();
117
- }
356
+ await ensureAdMobStarted();
118
357
  if (__classPrivateFieldGet(this, _MobileAd_init, "f") === null) {
119
358
  const cls = (_a = this.constructor.cls) !== null && _a !== void 0 ? _a : this.constructor.name;
120
359
  __classPrivateFieldSet(this, _MobileAd_init, AdMob.adCreate(Object.assign(Object.assign({}, this.opts), { id: this.id, cls })), "f");
@@ -199,6 +438,26 @@ class AdMobPlusWeb extends core.WebPlugin {
199
438
  async configRequest(...opts) {
200
439
  console.log('configRequest', opts);
201
440
  }
441
+ async requestConsentInfo(...opts) {
442
+ console.log('requestConsentInfo', opts);
443
+ return {
444
+ status: 'NOT_REQUIRED',
445
+ isConsentFormAvailable: false,
446
+ canRequestAds: true,
447
+ privacyOptionsRequirementStatus: 'NOT_REQUIRED',
448
+ };
449
+ }
450
+ async showConsentForm() {
451
+ console.log('showConsentForm');
452
+ return {
453
+ status: 'NOT_REQUIRED',
454
+ canRequestAds: true,
455
+ privacyOptionsRequirementStatus: 'NOT_REQUIRED',
456
+ };
457
+ }
458
+ async showPrivacyOptionsForm() {
459
+ console.log('showPrivacyOptionsForm');
460
+ }
202
461
  async adCreate(...opts) {
203
462
  console.log('adCreate', opts);
204
463
  }
@@ -215,6 +474,26 @@ class AdMobPlusWeb extends core.WebPlugin {
215
474
  async adHide(...opts) {
216
475
  console.log('adHide', opts);
217
476
  }
477
+ async feedAdCreate(...opts) {
478
+ console.log('feedAdCreate', opts);
479
+ return { id: 1 };
480
+ }
481
+ async feedAdDestroy(...opts) {
482
+ console.log('feedAdDestroy', opts);
483
+ }
484
+ async feedAdLoad(...opts) {
485
+ console.log('feedAdLoad', opts);
486
+ }
487
+ async feedAdIsLoaded(...opts) {
488
+ console.log('feedAdIsLoaded', opts);
489
+ return false;
490
+ }
491
+ async feedAdUpdateBounds(...opts) {
492
+ console.log('feedAdUpdateBounds', opts);
493
+ }
494
+ async feedAdSetAutoRefresh(...opts) {
495
+ console.log('feedAdSetAutoRefresh', opts);
496
+ }
218
497
  async trackingAuthorizationStatus(...opts) {
219
498
  console.log('trackingAuthorizationStatus', opts);
220
499
  return { status: false };
@@ -234,7 +513,10 @@ var web = /*#__PURE__*/Object.freeze({
234
513
  });
235
514
 
236
515
  exports.AdMob = AdMob;
516
+ exports.AdMobPlusEvents = AdMobPlusEvents;
237
517
  exports.BannerAd = BannerAd;
518
+ exports.FEED_AD_MIN_AUTO_REFRESH_MS = MIN_AUTO_REFRESH_MS;
519
+ exports.FeedAd = FeedAd;
238
520
  exports.InterstitialAd = InterstitialAd;
239
521
  exports.RewardedAd = RewardedAd;
240
522
  exports.RewardedInterstitialAd = RewardedInterstitialAd;
@@ -1 +1 @@
1
- {"version":3,"file":"plugin.cjs.js","sources":["esm/definitions.js","esm/index.js","esm/web.js"],"sourcesContent":["/**\n * Maximum ad content rating enum used to restrict ads based on content rating.\n *\n * @since 1.0.0\n */\nexport var MaxAdContentRating;\n(function (MaxAdContentRating) {\n /** General Audiences */\n MaxAdContentRating[\"G\"] = \"G\";\n /** Mature Audiences */\n MaxAdContentRating[\"MA\"] = \"MA\";\n /** Parental Guidance */\n MaxAdContentRating[\"PG\"] = \"PG\";\n /** Teen */\n MaxAdContentRating[\"T\"] = \"T\";\n /** Unspecified rating */\n MaxAdContentRating[\"UNSPECIFIED\"] = \"\";\n})(MaxAdContentRating || (MaxAdContentRating = {}));\n/**\n * Tracking authorization status for iOS App Tracking Transparency.\n *\n * @since 1.0.0\n */\nexport var TrackingAuthorizationStatus;\n(function (TrackingAuthorizationStatus) {\n /** User has not yet received an authorization request */\n TrackingAuthorizationStatus[TrackingAuthorizationStatus[\"notDetermined\"] = 0] = \"notDetermined\";\n /** User restricted, device is unable to provide authorization */\n TrackingAuthorizationStatus[TrackingAuthorizationStatus[\"restricted\"] = 1] = \"restricted\";\n /** User denied authorization */\n TrackingAuthorizationStatus[TrackingAuthorizationStatus[\"denied\"] = 2] = \"denied\";\n /** User authorized access */\n TrackingAuthorizationStatus[TrackingAuthorizationStatus[\"authorized\"] = 3] = \"authorized\";\n})(TrackingAuthorizationStatus || (TrackingAuthorizationStatus = {}));\n//# sourceMappingURL=definitions.js.map","var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n};\nvar __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n};\nvar _MobileAd_created, _MobileAd_init, _BannerAd_loaded;\nimport { registerPlugin } from '@capacitor/core';\nconst AdMob = registerPlugin('AdMobPlus', {\n web: () => import('./web').then((m) => new m.AdMobPlusWeb()),\n});\nlet started = false;\nlet startPromise = null;\nconst start = AdMob.start.bind(AdMob);\nconst ensureStarted = async () => {\n if (started)\n return;\n if (startPromise === null) {\n startPromise = start()\n .then((result) => {\n started = true;\n return result;\n })\n .catch((error) => {\n startPromise = null;\n throw error;\n });\n }\n return startPromise;\n};\nAdMob.start = ensureStarted;\nconst adIsLoaded = AdMob.adIsLoaded.bind(AdMob);\nAdMob.adIsLoaded = (async (...args) => {\n const result = (await adIsLoaded(...args));\n return typeof result === 'boolean' ? result : result.value === true;\n});\nclass MobileAd {\n constructor(opts) {\n _MobileAd_created.set(this, false);\n _MobileAd_init.set(this, null);\n this.opts = opts;\n this.id = MobileAd.nextId();\n MobileAd.allAds[this.id] = this;\n }\n static nextId() {\n MobileAd.idCounter += 1;\n return MobileAd.idCounter;\n }\n get adUnitId() {\n return this.opts.adUnitId;\n }\n async isLoaded() {\n await this.init();\n return AdMob.adIsLoaded({ id: this.id });\n }\n async load() {\n await this.init();\n return AdMob.adLoad(Object.assign(Object.assign({}, this.opts), { id: this.id }));\n }\n async show() {\n await this.init();\n return AdMob.adShow({ id: this.id });\n }\n async hide() {\n await this.init();\n return AdMob.adHide({ id: this.id });\n }\n async init() {\n var _a;\n if (__classPrivateFieldGet(this, _MobileAd_created, \"f\"))\n return;\n if (!started) {\n await ensureStarted();\n }\n if (__classPrivateFieldGet(this, _MobileAd_init, \"f\") === null) {\n const cls = (_a = this.constructor.cls) !== null && _a !== void 0 ? _a : this.constructor.name;\n __classPrivateFieldSet(this, _MobileAd_init, AdMob.adCreate(Object.assign(Object.assign({}, this.opts), { id: this.id, cls })), \"f\");\n }\n await __classPrivateFieldGet(this, _MobileAd_init, \"f\");\n __classPrivateFieldSet(this, _MobileAd_created, true, \"f\");\n }\n}\n_MobileAd_created = new WeakMap(), _MobileAd_init = new WeakMap();\nMobileAd.allAds = {};\nMobileAd.idCounter = 0;\nclass BannerAd extends MobileAd {\n constructor(opts) {\n super(Object.assign({ position: 'bottom' }, opts));\n _BannerAd_loaded.set(this, false);\n }\n isLoaded() {\n return super.isLoaded();\n }\n async load() {\n await super.load();\n __classPrivateFieldSet(this, _BannerAd_loaded, true, \"f\");\n }\n async show() {\n if (!__classPrivateFieldGet(this, _BannerAd_loaded, \"f\"))\n await this.load();\n await super.show();\n }\n hide() {\n return super.hide();\n }\n}\n_BannerAd_loaded = new WeakMap();\nBannerAd.cls = 'BannerAd';\nclass InterstitialAd extends MobileAd {\n isLoaded() {\n return super.isLoaded();\n }\n async load() {\n return super.load();\n }\n async show() {\n return super.show();\n }\n}\nInterstitialAd.cls = 'InterstitialAd';\nclass RewardedAd extends MobileAd {\n isLoaded() {\n return super.isLoaded();\n }\n async load() {\n return super.load();\n }\n async show() {\n return super.show();\n }\n}\nRewardedAd.cls = 'RewardedAd';\nclass RewardedInterstitialAd extends MobileAd {\n isLoaded() {\n return super.isLoaded();\n }\n async load() {\n return super.load();\n }\n async show() {\n return super.show();\n }\n}\nRewardedInterstitialAd.cls = 'RewardedInterstitialAd';\nexport * from './definitions';\nexport { AdMob, BannerAd, InterstitialAd, RewardedAd, RewardedInterstitialAd };\n//# sourceMappingURL=index.js.map","import { WebPlugin } from '@capacitor/core';\nexport class AdMobPlusWeb extends WebPlugin {\n addListener(eventName, listenerFunc) {\n return super.addListener(eventName, listenerFunc);\n }\n async start(...opts) {\n console.log('start', opts);\n }\n async configure(...opts) {\n console.log('configure', opts);\n }\n async configRequest(...opts) {\n console.log('configRequest', opts);\n }\n async adCreate(...opts) {\n console.log('adCreate', opts);\n }\n async adIsLoaded(...opts) {\n console.log('adIsLoaded', opts);\n return false;\n }\n async adLoad(...opts) {\n console.log('adLoad', opts);\n }\n async adShow(...opts) {\n console.log('adShow', opts);\n }\n async adHide(...opts) {\n console.log('adHide', opts);\n }\n async trackingAuthorizationStatus(...opts) {\n console.log('trackingAuthorizationStatus', opts);\n return { status: false };\n }\n async requestTrackingAuthorization(...opts) {\n console.log('requestTrackingAuthorization', opts);\n return { status: false };\n }\n async getPluginVersion() {\n return { version: 'web' };\n }\n}\n//# sourceMappingURL=web.js.map"],"names":["MaxAdContentRating","TrackingAuthorizationStatus","this","registerPlugin","WebPlugin"],"mappings":"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"}
1
+ {"version":3,"file":"plugin.cjs.js","sources":["esm/plugin-instance.js","esm/definitions.js","esm/events.js","esm/feed-ad.js","esm/index.js","esm/web.js"],"sourcesContent":["import { registerPlugin } from '@capacitor/core';\nexport const AdMob = registerPlugin('AdMobPlus', {\n web: () => import('./web').then((m) => new m.AdMobPlusWeb()),\n});\nlet started = false;\nlet startPromise = null;\nconst start = AdMob.start.bind(AdMob);\nexport const ensureAdMobStarted = async () => {\n if (started)\n return;\n if (startPromise === null) {\n startPromise = start()\n .then((result) => {\n started = true;\n return result;\n })\n .catch((error) => {\n startPromise = null;\n throw error;\n });\n }\n return startPromise;\n};\nAdMob.start = ensureAdMobStarted;\nconst adIsLoaded = AdMob.adIsLoaded.bind(AdMob);\nAdMob.adIsLoaded = (async (...args) => {\n const result = (await adIsLoaded(...args));\n return typeof result === 'boolean' ? result : result.value === true;\n});\nconst feedAdIsLoaded = AdMob.feedAdIsLoaded.bind(AdMob);\nAdMob.feedAdIsLoaded = (async (...args) => {\n const result = (await feedAdIsLoaded(...args));\n return typeof result === 'boolean' ? result : result.value === true;\n});\n//# sourceMappingURL=plugin-instance.js.map","/**\n * Maximum ad content rating enum used to restrict ads based on content rating.\n *\n * @since 1.0.0\n */\nexport var MaxAdContentRating;\n(function (MaxAdContentRating) {\n /** General Audiences */\n MaxAdContentRating[\"G\"] = \"G\";\n /** Mature Audiences */\n MaxAdContentRating[\"MA\"] = \"MA\";\n /** Parental Guidance */\n MaxAdContentRating[\"PG\"] = \"PG\";\n /** Teen */\n MaxAdContentRating[\"T\"] = \"T\";\n /** Unspecified rating */\n MaxAdContentRating[\"UNSPECIFIED\"] = \"\";\n})(MaxAdContentRating || (MaxAdContentRating = {}));\n/**\n * Consent status from Google's User Messaging Platform (UMP).\n *\n * @see https://developers.google.com/admob/ump/android/reference/com/google/android/ump/ConsentInformation.ConsentStatus\n * @since 8.2.0\n */\nexport var AdmobConsentStatus;\n(function (AdmobConsentStatus) {\n /** User consent not required. */\n AdmobConsentStatus[\"NOT_REQUIRED\"] = \"NOT_REQUIRED\";\n /** User consent already obtained. */\n AdmobConsentStatus[\"OBTAINED\"] = \"OBTAINED\";\n /** User consent required but not yet obtained. */\n AdmobConsentStatus[\"REQUIRED\"] = \"REQUIRED\";\n /** Unknown consent status. Call requestConsentInfo() to update it. */\n AdmobConsentStatus[\"UNKNOWN\"] = \"UNKNOWN\";\n})(AdmobConsentStatus || (AdmobConsentStatus = {}));\n/**\n * Privacy options requirement status from UMP.\n *\n * @see https://developers.google.com/admob/ump/android/reference/com/google/android/ump/ConsentInformation.PrivacyOptionsRequirementStatus\n * @since 8.2.0\n */\nexport var PrivacyOptionsRequirementStatus;\n(function (PrivacyOptionsRequirementStatus) {\n /** Privacy options entry point is not required. */\n PrivacyOptionsRequirementStatus[\"NOT_REQUIRED\"] = \"NOT_REQUIRED\";\n /** Privacy options entry point is required. */\n PrivacyOptionsRequirementStatus[\"REQUIRED\"] = \"REQUIRED\";\n /** Privacy options requirement status is unknown. */\n PrivacyOptionsRequirementStatus[\"UNKNOWN\"] = \"UNKNOWN\";\n})(PrivacyOptionsRequirementStatus || (PrivacyOptionsRequirementStatus = {}));\n/**\n * Debug geography for testing UMP consent flows locally.\n *\n * @see https://developers.google.com/admob/ump/android/reference/com/google/android/ump/ConsentDebugSettings.DebugGeography\n * @since 8.2.0\n */\nexport var AdmobConsentDebugGeography;\n(function (AdmobConsentDebugGeography) {\n /** Debug geography disabled. */\n AdmobConsentDebugGeography[AdmobConsentDebugGeography[\"DISABLED\"] = 0] = \"DISABLED\";\n /** Geography appears as in EEA for debug devices. */\n AdmobConsentDebugGeography[AdmobConsentDebugGeography[\"EEA\"] = 1] = \"EEA\";\n /**\n * Geography appears as not in EEA for debug devices.\n *\n * @deprecated Use OTHER instead.\n */\n AdmobConsentDebugGeography[AdmobConsentDebugGeography[\"NOT_EEA\"] = 2] = \"NOT_EEA\";\n /** Geography appears as in a regulated US state for debug devices. */\n AdmobConsentDebugGeography[AdmobConsentDebugGeography[\"US\"] = 3] = \"US\";\n /** Geography appears as OTHER for debug devices. */\n AdmobConsentDebugGeography[AdmobConsentDebugGeography[\"OTHER\"] = 4] = \"OTHER\";\n})(AdmobConsentDebugGeography || (AdmobConsentDebugGeography = {}));\n/**\n * Tracking authorization status for iOS App Tracking Transparency.\n *\n * @since 1.0.0\n */\nexport var TrackingAuthorizationStatus;\n(function (TrackingAuthorizationStatus) {\n /** User has not yet received an authorization request */\n TrackingAuthorizationStatus[TrackingAuthorizationStatus[\"notDetermined\"] = 0] = \"notDetermined\";\n /** User restricted, device is unable to provide authorization */\n TrackingAuthorizationStatus[TrackingAuthorizationStatus[\"restricted\"] = 1] = \"restricted\";\n /** User denied authorization */\n TrackingAuthorizationStatus[TrackingAuthorizationStatus[\"denied\"] = 2] = \"denied\";\n /** User authorized access */\n TrackingAuthorizationStatus[TrackingAuthorizationStatus[\"authorized\"] = 3] = \"authorized\";\n})(TrackingAuthorizationStatus || (TrackingAuthorizationStatus = {}));\n//# sourceMappingURL=definitions.js.map","/**\n * Typed event name constants for {@link AdMobPlusPlugin.addListener}.\n *\n * @since 8.2.0\n */\nexport const AdMobPlusEvents = {\n AdClick: 'ad.click',\n AdDismiss: 'ad.dismiss',\n AdImpression: 'ad.impression',\n AdLoad: 'ad.load',\n AdLoadFail: 'ad.loadfail',\n AdReward: 'ad.reward',\n AdShow: 'ad.show',\n AdShowFail: 'ad.showfail',\n BannerClick: 'banner.click',\n BannerClose: 'banner.close',\n BannerImpression: 'banner.impression',\n BannerLoad: 'banner.load',\n BannerLoadFail: 'banner.loadfail',\n BannerOpen: 'banner.open',\n BannerSizeChange: 'banner.sizechange',\n InterstitialDismiss: 'interstitial.dismiss',\n InterstitialImpression: 'interstitial.impression',\n InterstitialLoad: 'interstitial.load',\n InterstitialLoadFail: 'interstitial.loadfail',\n InterstitialShow: 'interstitial.show',\n InterstitialShowFail: 'interstitial.showfail',\n RewardedDismiss: 'rewarded.dismiss',\n RewardedImpression: 'rewarded.impression',\n RewardedInterstitialDismiss: 'rewardedi.dismiss',\n RewardedInterstitialImpression: 'rewardedi.impression',\n RewardedInterstitialLoad: 'rewardedi.load',\n RewardedInterstitialLoadFail: 'rewardedi.loadfail',\n RewardedInterstitialReward: 'rewardedi.reward',\n RewardedInterstitialShow: 'rewardedi.show',\n RewardedInterstitialShowFail: 'rewardedi.showfail',\n RewardedLoad: 'rewarded.load',\n RewardedLoadFail: 'rewarded.loadfail',\n RewardedReward: 'rewarded.reward',\n RewardedShow: 'rewarded.show',\n RewardedShowFail: 'rewarded.showfail',\n FeedClick: 'feed.click',\n FeedClose: 'feed.close',\n FeedImpression: 'feed.impression',\n FeedLoad: 'feed.load',\n FeedLoadFail: 'feed.loadfail',\n FeedOpen: 'feed.open',\n FeedRefresh: 'feed.refresh',\n};\n//# sourceMappingURL=events.js.map","import { Capacitor } from '@capacitor/core';\nimport { AdMob, ensureAdMobStarted } from './plugin-instance';\nconst MIN_AUTO_REFRESH_MS = 30000;\n/**\n * High-level helper for in-feed native or banner ads.\n *\n * Policy: impressions and clicks are recorded only on the native overlay\n * ({@link https://developers.google.com/admob/android/native/advanced | NativeAdView} /\n * GADNativeAdView). Use a placeholder element in your HTML feed and call\n * {@link FeedAd.attachTo} so the plugin keeps the overlay aligned on scroll and resize.\n */\nexport class FeedAd {\n constructor(opts) {\n this.id = null;\n this.createPromise = null;\n this.stopSync = null;\n if (opts.autoRefreshMs !== undefined && opts.autoRefreshMs !== null && opts.autoRefreshMs < MIN_AUTO_REFRESH_MS) {\n throw new Error(`autoRefreshMs must be at least ${MIN_AUTO_REFRESH_MS}`);\n }\n this.opts = opts;\n }\n get feedAdId() {\n return this.id;\n }\n async create() {\n var _a;\n if (this.id !== null) {\n return this.id;\n }\n (_a = this.createPromise) !== null && _a !== void 0 ? _a : (this.createPromise = (async () => {\n await ensureAdMobStarted();\n const result = await AdMob.feedAdCreate(this.opts);\n this.id = result.id;\n return result.id;\n })().finally(() => {\n this.createPromise = null;\n }));\n return this.createPromise;\n }\n async load() {\n const id = await this.create();\n await AdMob.feedAdLoad({ id });\n }\n async isLoaded() {\n if (this.id === null) {\n return false;\n }\n return AdMob.feedAdIsLoaded({ id: this.id });\n }\n /**\n * Load the ad (if needed) and keep a native ad view aligned with `element`.\n */\n async attachTo(element) {\n await this.load();\n this.startBoundsSync(element);\n await this.pushBounds(element);\n }\n async updatePosition(bounds) {\n const id = await this.create();\n await AdMob.feedAdUpdateBounds(Object.assign({ id }, bounds));\n }\n async setAutoRefresh(autoRefreshMs) {\n if (autoRefreshMs !== null && autoRefreshMs < MIN_AUTO_REFRESH_MS) {\n throw new Error(`autoRefreshMs must be at least ${MIN_AUTO_REFRESH_MS}`);\n }\n const id = await this.create();\n await AdMob.feedAdSetAutoRefresh({ id, autoRefreshMs });\n }\n async destroy() {\n this.stopBoundsSync();\n if (this.id !== null) {\n await AdMob.feedAdDestroy({ id: this.id });\n this.id = null;\n }\n }\n startBoundsSync(element) {\n this.stopBoundsSync();\n const onChange = () => {\n void this.pushBounds(element);\n };\n const scrollTargets = [window];\n let parent = element.parentElement;\n while (parent) {\n scrollTargets.push(parent);\n parent = parent.parentElement;\n }\n scrollTargets.forEach((target) => {\n target.addEventListener('scroll', onChange, { passive: true });\n });\n window.addEventListener('resize', onChange, { passive: true });\n window.addEventListener('orientationchange', onChange);\n let resizeObserver;\n if (typeof ResizeObserver !== 'undefined') {\n resizeObserver = new ResizeObserver(onChange);\n resizeObserver.observe(element);\n }\n this.stopSync = () => {\n scrollTargets.forEach((target) => {\n target.removeEventListener('scroll', onChange);\n });\n window.removeEventListener('resize', onChange);\n window.removeEventListener('orientationchange', onChange);\n resizeObserver === null || resizeObserver === void 0 ? void 0 : resizeObserver.disconnect();\n };\n }\n stopBoundsSync() {\n var _a;\n (_a = this.stopSync) === null || _a === void 0 ? void 0 : _a.call(this);\n this.stopSync = null;\n }\n async pushBounds(element) {\n if (this.id === null) {\n return;\n }\n const rect = element.getBoundingClientRect();\n const visible = rect.width > 0 &&\n rect.height > 0 &&\n rect.bottom > 0 &&\n rect.top < (window.innerHeight || document.documentElement.clientHeight);\n const density = Capacitor.isNativePlatform() ? window.devicePixelRatio || 1 : 1;\n await AdMob.feedAdUpdateBounds({\n id: this.id,\n x: rect.left,\n y: rect.top,\n width: rect.width,\n height: rect.height,\n visible,\n density,\n });\n }\n}\nexport { MIN_AUTO_REFRESH_MS as FEED_AD_MIN_AUTO_REFRESH_MS };\n//# sourceMappingURL=feed-ad.js.map","var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n};\nvar __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n};\nvar _MobileAd_created, _MobileAd_init, _BannerAd_loaded;\nimport { AdMob, ensureAdMobStarted } from './plugin-instance';\nclass MobileAd {\n constructor(opts) {\n _MobileAd_created.set(this, false);\n _MobileAd_init.set(this, null);\n this.opts = opts;\n this.id = MobileAd.nextId();\n MobileAd.allAds[this.id] = this;\n }\n static nextId() {\n MobileAd.idCounter += 1;\n return MobileAd.idCounter;\n }\n get adUnitId() {\n return this.opts.adUnitId;\n }\n async isLoaded() {\n await this.init();\n return AdMob.adIsLoaded({ id: this.id });\n }\n async load() {\n await this.init();\n return AdMob.adLoad(Object.assign(Object.assign({}, this.opts), { id: this.id }));\n }\n async show() {\n await this.init();\n return AdMob.adShow({ id: this.id });\n }\n async hide() {\n await this.init();\n return AdMob.adHide({ id: this.id });\n }\n async init() {\n var _a;\n if (__classPrivateFieldGet(this, _MobileAd_created, \"f\"))\n return;\n await ensureAdMobStarted();\n if (__classPrivateFieldGet(this, _MobileAd_init, \"f\") === null) {\n const cls = (_a = this.constructor.cls) !== null && _a !== void 0 ? _a : this.constructor.name;\n __classPrivateFieldSet(this, _MobileAd_init, AdMob.adCreate(Object.assign(Object.assign({}, this.opts), { id: this.id, cls })), \"f\");\n }\n await __classPrivateFieldGet(this, _MobileAd_init, \"f\");\n __classPrivateFieldSet(this, _MobileAd_created, true, \"f\");\n }\n}\n_MobileAd_created = new WeakMap(), _MobileAd_init = new WeakMap();\nMobileAd.allAds = {};\nMobileAd.idCounter = 0;\nclass BannerAd extends MobileAd {\n constructor(opts) {\n super(Object.assign({ position: 'bottom' }, opts));\n _BannerAd_loaded.set(this, false);\n }\n isLoaded() {\n return super.isLoaded();\n }\n async load() {\n await super.load();\n __classPrivateFieldSet(this, _BannerAd_loaded, true, \"f\");\n }\n async show() {\n if (!__classPrivateFieldGet(this, _BannerAd_loaded, \"f\"))\n await this.load();\n await super.show();\n }\n hide() {\n return super.hide();\n }\n}\n_BannerAd_loaded = new WeakMap();\nBannerAd.cls = 'BannerAd';\nclass InterstitialAd extends MobileAd {\n isLoaded() {\n return super.isLoaded();\n }\n async load() {\n return super.load();\n }\n async show() {\n return super.show();\n }\n}\nInterstitialAd.cls = 'InterstitialAd';\nclass RewardedAd extends MobileAd {\n isLoaded() {\n return super.isLoaded();\n }\n async load() {\n return super.load();\n }\n async show() {\n return super.show();\n }\n}\nRewardedAd.cls = 'RewardedAd';\nclass RewardedInterstitialAd extends MobileAd {\n isLoaded() {\n return super.isLoaded();\n }\n async load() {\n return super.load();\n }\n async show() {\n return super.show();\n }\n}\nRewardedInterstitialAd.cls = 'RewardedInterstitialAd';\nexport * from './definitions';\nexport * from './events';\nexport * from './feed-ad';\nexport { AdMob, BannerAd, InterstitialAd, RewardedAd, RewardedInterstitialAd };\n//# sourceMappingURL=index.js.map","import { WebPlugin } from '@capacitor/core';\nexport class AdMobPlusWeb extends WebPlugin {\n addListener(eventName, listenerFunc) {\n return super.addListener(eventName, listenerFunc);\n }\n async start(...opts) {\n console.log('start', opts);\n }\n async configure(...opts) {\n console.log('configure', opts);\n }\n async configRequest(...opts) {\n console.log('configRequest', opts);\n }\n async requestConsentInfo(...opts) {\n console.log('requestConsentInfo', opts);\n return {\n status: 'NOT_REQUIRED',\n isConsentFormAvailable: false,\n canRequestAds: true,\n privacyOptionsRequirementStatus: 'NOT_REQUIRED',\n };\n }\n async showConsentForm() {\n console.log('showConsentForm');\n return {\n status: 'NOT_REQUIRED',\n canRequestAds: true,\n privacyOptionsRequirementStatus: 'NOT_REQUIRED',\n };\n }\n async showPrivacyOptionsForm() {\n console.log('showPrivacyOptionsForm');\n }\n async adCreate(...opts) {\n console.log('adCreate', opts);\n }\n async adIsLoaded(...opts) {\n console.log('adIsLoaded', opts);\n return false;\n }\n async adLoad(...opts) {\n console.log('adLoad', opts);\n }\n async adShow(...opts) {\n console.log('adShow', opts);\n }\n async adHide(...opts) {\n console.log('adHide', opts);\n }\n async feedAdCreate(...opts) {\n console.log('feedAdCreate', opts);\n return { id: 1 };\n }\n async feedAdDestroy(...opts) {\n console.log('feedAdDestroy', opts);\n }\n async feedAdLoad(...opts) {\n console.log('feedAdLoad', opts);\n }\n async feedAdIsLoaded(...opts) {\n console.log('feedAdIsLoaded', opts);\n return false;\n }\n async feedAdUpdateBounds(...opts) {\n console.log('feedAdUpdateBounds', opts);\n }\n async feedAdSetAutoRefresh(...opts) {\n console.log('feedAdSetAutoRefresh', opts);\n }\n async trackingAuthorizationStatus(...opts) {\n console.log('trackingAuthorizationStatus', opts);\n return { status: false };\n }\n async requestTrackingAuthorization(...opts) {\n console.log('requestTrackingAuthorization', opts);\n return { status: false };\n }\n async getPluginVersion() {\n return { version: 'web' };\n }\n}\n//# sourceMappingURL=web.js.map"],"names":["registerPlugin","MaxAdContentRating","AdmobConsentStatus","PrivacyOptionsRequirementStatus","AdmobConsentDebugGeography","TrackingAuthorizationStatus","Capacitor","this","WebPlugin"],"mappings":"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"}