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