@capgo/capacitor-webview-version-checker 8.1.1 → 8.2.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.
package/README.md CHANGED
@@ -47,6 +47,7 @@ const config: CapacitorConfig = {
47
47
  plugins: {
48
48
  WebviewVersionChecker: {
49
49
  autoPromptOnOutdated: true,
50
+ autoPromptDismissible: false,
50
51
  },
51
52
  },
52
53
  };
@@ -113,6 +114,7 @@ const status = await WebviewVersionChecker.check({
113
114
  'https://versionhistory.googleapis.com/v1/chrome/platforms/android/channels/stable/versions?page_size=1',
114
115
  minimumMajorVersion: 124,
115
116
  showPromptOnOutdated: true,
117
+ autoPromptDismissible: false,
116
118
  promptTitle: 'Update WebView',
117
119
  promptMessage: 'Your WebView is outdated. Please update to continue safely.',
118
120
  promptUpdateButtonText: 'Update now',
@@ -4,9 +4,9 @@ import org.json.JSONObject;
4
4
 
5
5
  final class GeneratedVersionShareData {
6
6
 
7
- private static final String GENERATED_AT = "2026-02-20T04:04:07.658Z";
7
+ private static final String GENERATED_AT = "2026-02-22T16:25:02.516Z";
8
8
  private static final String DATA_SOURCE = "generatedVersionShareByMajor";
9
- private static final String JSON_DATA = "{\"4\":0.000092,\"39\":0.004796,\"40\":0.004796,\"41\":0.009592,\"42\":0.004796,\"43\":0.004796,\"44\":0.004796,\"45\":0.009592,\"46\":0.004796,\"47\":0.009592,\"48\":0.014388,\"49\":0.014388,\"50\":0.009592,\"51\":0.009592,\"52\":0.014388,\"53\":0.009592,\"54\":0.004796,\"55\":0.009592,\"56\":0.009592,\"57\":0.009592,\"58\":0.009592,\"59\":0.009592,\"60\":0.014388,\"61\":0.004796,\"62\":0.009592,\"63\":0.009592,\"64\":0.009592,\"65\":0.004796,\"66\":0.02398,\"67\":0.009592,\"68\":0.009592,\"69\":0.033572,\"70\":0.009592,\"75\":0.004796,\"77\":0.004796,\"79\":0.067144,\"80\":0.009592,\"81\":0.009592,\"83\":0.043164,\"85\":0.004796,\"86\":0.009592,\"87\":0.028776,\"88\":0.004796,\"91\":0.019184,\"92\":0.014388,\"93\":0.009592,\"97\":0.009592,\"98\":0.04796,\"99\":0.043164,\"101\":0.014388,\"102\":0.009592,\"103\":0.26378,\"104\":0.230208,\"105\":0.273372,\"106\":0.206228,\"107\":0.230208,\"108\":0.230208,\"109\":0.786544,\"110\":0.235004,\"111\":0.292556,\"112\":2.71454,\"113\":0.004796,\"114\":0.062348,\"115\":0.02398,\"116\":0.446028,\"117\":0.282964,\"118\":0.052756,\"119\":0.038368,\"120\":0.31174,\"121\":0.04796,\"122\":0.091124,\"123\":0.062348,\"124\":0.230208,\"125\":0.244596,\"126\":0.052756,\"127\":0.052756,\"128\":0.076736,\"129\":0.067144,\"130\":0.09592,\"131\":0.709808,\"132\":0.139084,\"133\":0.52756,\"134\":0.067144,\"135\":0.067144,\"136\":0.09592,\"137\":0.062348,\"138\":0.235004,\"139\":3.34761,\"140\":0.177452,\"141\":0.398068,\"142\":1.29972,\"143\":10.4121,\"144\":41.8835,\"145\":0.019184}";
9
+ private static final String JSON_DATA = "{\"4\":0.000092,\"39\":0.004796,\"40\":0.004796,\"41\":0.009592,\"42\":0.004796,\"43\":0.004796,\"44\":0.004796,\"45\":0.009592,\"46\":0.004796,\"47\":0.009592,\"48\":0.014388,\"49\":0.014388,\"50\":0.009592,\"51\":0.009592,\"52\":0.014388,\"53\":0.009592,\"54\":0.004796,\"55\":0.009592,\"56\":0.009592,\"57\":0.009592,\"58\":0.009592,\"59\":0.009592,\"60\":0.014388,\"61\":0.004796,\"62\":0.009592,\"63\":0.009592,\"64\":0.009592,\"65\":0.004796,\"66\":0.02398,\"67\":0.009592,\"68\":0.009592,\"69\":0.033572,\"70\":0.009592,\"75\":0.004796,\"77\":0.004796,\"79\":0.067144,\"80\":0.009592,\"81\":0.009592,\"83\":0.043164,\"85\":0.004796,\"86\":0.009592,\"87\":0.028776,\"88\":0.004796,\"91\":0.019184,\"92\":0.014388,\"93\":0.009592,\"97\":0.009592,\"98\":0.04796,\"99\":0.043164,\"101\":0.014388,\"102\":0.009592,\"103\":0.26378,\"104\":0.230208,\"105\":0.273372,\"106\":0.206228,\"107\":0.230208,\"108\":0.230208,\"109\":0.786544,\"110\":0.235004,\"111\":0.292556,\"112\":2.71454,\"113\":0.004796,\"114\":0.062348,\"115\":0.02398,\"116\":0.446028,\"117\":0.282964,\"118\":0.052756,\"119\":0.038368,\"120\":0.31174,\"121\":0.04796,\"122\":0.091124,\"123\":0.062348,\"124\":0.230208,\"125\":0.244596,\"126\":0.052756,\"127\":0.052756,\"128\":0.076736,\"129\":0.067144,\"130\":0.09592,\"131\":0.709808,\"132\":0.139084,\"133\":0.52756,\"134\":0.067144,\"135\":0.067144,\"136\":0.09592,\"137\":0.062348,\"138\":0.235004,\"139\":3.34761,\"140\":0.177452,\"141\":0.398068,\"142\":1.29972,\"143\":10.4121,\"144\":3.76486,\"145\":41.8835}";
10
10
 
11
11
  private GeneratedVersionShareData() {}
12
12
 
@@ -75,6 +75,11 @@ public class WebviewVersionCheckerPlugin extends Plugin {
75
75
 
76
76
  private long cachedVersionShareTimestamp;
77
77
 
78
+ private boolean isPromptShowing;
79
+
80
+ @Nullable
81
+ private AlertDialog activePromptDialog;
82
+
78
83
  @Override
79
84
  public void load() {
80
85
  super.load();
@@ -132,7 +137,7 @@ public class WebviewVersionCheckerPlugin extends Plugin {
132
137
  @PluginMethod
133
138
  public void showUpdatePrompt(PluginCall call) {
134
139
  PromptOptions promptOptions = PromptOptions.fromCall(call, runtimeOptions);
135
- showUpdatePrompt(promptOptions, true, (shown, opened) -> {
140
+ showUpdatePrompt(promptOptions, true, runtimeOptions.autoPromptDismissible, (shown, opened) -> {
136
141
  JSObject payload = new JSObject();
137
142
  payload.put("shown", shown);
138
143
  payload.put("openedUpdatePage", opened);
@@ -166,6 +171,7 @@ public class WebviewVersionCheckerPlugin extends Plugin {
166
171
  lastStatus = status;
167
172
 
168
173
  notifyStatus(status);
174
+ dismissAutoPromptIfUpToDate(status);
169
175
  maybeAutoPrompt(status, options, forcePrompt);
170
176
 
171
177
  if (call != null) {
@@ -314,10 +320,15 @@ public class WebviewVersionCheckerPlugin extends Plugin {
314
320
  }
315
321
 
316
322
  PromptOptions promptOptions = PromptOptions.fromRuntime(options);
317
- showUpdatePrompt(promptOptions, forcePrompt, null);
323
+ showUpdatePrompt(promptOptions, forcePrompt, options.autoPromptDismissible, null);
318
324
  }
319
325
 
320
- private void showUpdatePrompt(PromptOptions promptOptions, boolean force, @Nullable PromptResultCallback callback) {
326
+ private void showUpdatePrompt(
327
+ PromptOptions promptOptions,
328
+ boolean force,
329
+ boolean dismissible,
330
+ @Nullable PromptResultCallback callback
331
+ ) {
321
332
  Activity activity = getActivity();
322
333
  if (activity == null || activity.isFinishing()) {
323
334
  if (callback != null) {
@@ -335,15 +346,24 @@ public class WebviewVersionCheckerPlugin extends Plugin {
335
346
  }
336
347
 
337
348
  String fingerprint = buildPromptFingerprint(lastStatus, updateUrl);
338
- if (!force && !isBlank(fingerprint) && fingerprint.equals(lastPromptFingerprint)) {
349
+ if (dismissible && !force && !isBlank(fingerprint) && fingerprint.equals(lastPromptFingerprint)) {
350
+ if (callback != null) {
351
+ callback.onResult(false, false);
352
+ }
353
+ return;
354
+ }
355
+
356
+ if (isPromptShowing) {
339
357
  if (callback != null) {
340
358
  callback.onResult(false, false);
341
359
  }
342
360
  return;
343
361
  }
344
362
 
345
- if (!isBlank(fingerprint)) {
363
+ if (dismissible && !isBlank(fingerprint)) {
346
364
  lastPromptFingerprint = fingerprint;
365
+ } else {
366
+ lastPromptFingerprint = null;
347
367
  }
348
368
 
349
369
  String title = !isBlank(promptOptions.title) ? promptOptions.title : DEFAULT_PROMPT_TITLE;
@@ -353,7 +373,7 @@ public class WebviewVersionCheckerPlugin extends Plugin {
353
373
 
354
374
  bridge.executeOnMainThread(() -> {
355
375
  final boolean[] resolved = { false };
356
- AlertDialog dialog = new AlertDialog.Builder(activity)
376
+ AlertDialog.Builder builder = new AlertDialog.Builder(activity)
357
377
  .setTitle(title)
358
378
  .setMessage(message)
359
379
  .setPositiveButton(updateButtonText, (dialogInterface, which) -> {
@@ -362,21 +382,64 @@ public class WebviewVersionCheckerPlugin extends Plugin {
362
382
  resolved[0] = true;
363
383
  callback.onResult(true, opened);
364
384
  }
365
- })
366
- .setNegativeButton(cancelButtonText, (dialogInterface, which) -> {
367
- if (callback != null && !resolved[0]) {
368
- resolved[0] = true;
369
- callback.onResult(true, false);
370
- }
371
- })
372
- .setOnCancelListener((dialogInterface) -> {
373
- if (callback != null && !resolved[0]) {
374
- resolved[0] = true;
375
- callback.onResult(true, false);
376
- }
377
- })
378
- .create();
385
+ });
386
+
387
+ if (dismissible) {
388
+ builder
389
+ .setNegativeButton(cancelButtonText, (dialogInterface, which) -> {
390
+ if (callback != null && !resolved[0]) {
391
+ resolved[0] = true;
392
+ callback.onResult(true, false);
393
+ }
394
+ })
395
+ .setOnCancelListener((dialogInterface) -> {
396
+ if (callback != null && !resolved[0]) {
397
+ resolved[0] = true;
398
+ callback.onResult(true, false);
399
+ }
400
+ });
401
+ }
402
+
403
+ AlertDialog dialog = builder.setCancelable(dismissible).create();
404
+ isPromptShowing = true;
405
+ activePromptDialog = dialog;
406
+ dialog.setOnDismissListener((dialogInterface) -> {
407
+ isPromptShowing = false;
408
+ if (activePromptDialog == dialog) {
409
+ activePromptDialog = null;
410
+ }
411
+ });
379
412
  dialog.show();
413
+ if (!dismissible) {
414
+ dialog
415
+ .getButton(AlertDialog.BUTTON_POSITIVE)
416
+ .setOnClickListener((view) -> {
417
+ boolean opened = openUpdateUrl(updateUrl);
418
+ if (callback != null && !resolved[0]) {
419
+ resolved[0] = true;
420
+ callback.onResult(true, opened);
421
+ }
422
+ });
423
+ }
424
+ });
425
+ }
426
+
427
+ private void dismissAutoPromptIfUpToDate(JSObject status) {
428
+ if (!"latest".equals(status.optString("state", "unknown"))) {
429
+ return;
430
+ }
431
+ AlertDialog dialog = activePromptDialog;
432
+ if (dialog == null) {
433
+ return;
434
+ }
435
+
436
+ bridge.executeOnMainThread(() -> {
437
+ if (dialog.isShowing()) {
438
+ dialog.dismiss();
439
+ }
440
+ if (activePromptDialog == dialog) {
441
+ activePromptDialog = null;
442
+ }
380
443
  });
381
444
  }
382
445
 
@@ -1000,6 +1063,7 @@ public class WebviewVersionCheckerPlugin extends Plugin {
1000
1063
  private boolean autoCheckOnResume = true;
1001
1064
  private boolean autoPromptOnOutdated;
1002
1065
  private boolean showPromptOnOutdated;
1066
+ private boolean autoPromptDismissible = true;
1003
1067
 
1004
1068
  @Nullable
1005
1069
  private String latestVersion;
@@ -1039,6 +1103,7 @@ public class WebviewVersionCheckerPlugin extends Plugin {
1039
1103
  out.autoCheckOnLoad = config.getBoolean("autoCheckOnLoad", true);
1040
1104
  out.autoCheckOnResume = config.getBoolean("autoCheckOnResume", true);
1041
1105
  out.autoPromptOnOutdated = config.getBoolean("autoPromptOnOutdated", false);
1106
+ out.autoPromptDismissible = config.getBoolean("autoPromptDismissible", true);
1042
1107
  out.latestVersion = emptyToNull(config.getString("latestVersion"));
1043
1108
  Integer minimum = config.getConfigJSON().has("minimumMajorVersion") ? config.getInt("minimumMajorVersion", 0) : null;
1044
1109
  out.minimumMajorVersion = minimum;
@@ -1068,6 +1133,9 @@ public class WebviewVersionCheckerPlugin extends Plugin {
1068
1133
  if (call.hasOption("autoPromptOnOutdated")) {
1069
1134
  out.autoPromptOnOutdated = call.getBoolean("autoPromptOnOutdated", out.autoPromptOnOutdated);
1070
1135
  }
1136
+ if (call.hasOption("autoPromptDismissible")) {
1137
+ out.autoPromptDismissible = call.getBoolean("autoPromptDismissible", out.autoPromptDismissible);
1138
+ }
1071
1139
  if (call.hasOption("showPromptOnOutdated")) {
1072
1140
  out.showPromptOnOutdated = call.getBoolean("showPromptOnOutdated", out.showPromptOnOutdated);
1073
1141
  }
@@ -1113,6 +1181,7 @@ public class WebviewVersionCheckerPlugin extends Plugin {
1113
1181
  out.autoCheckOnLoad = autoCheckOnLoad;
1114
1182
  out.autoCheckOnResume = autoCheckOnResume;
1115
1183
  out.autoPromptOnOutdated = autoPromptOnOutdated;
1184
+ out.autoPromptDismissible = autoPromptDismissible;
1116
1185
  out.showPromptOnOutdated = showPromptOnOutdated;
1117
1186
  out.latestVersion = latestVersion;
1118
1187
  out.minimumMajorVersion = minimumMajorVersion;
@@ -54,6 +54,15 @@ export interface WebviewVersionCheckerConfig {
54
54
  * @default false
55
55
  */
56
56
  autoPromptOnOutdated?: boolean;
57
+ /**
58
+ * Controls whether the automatic modal can be dismissed.
59
+ *
60
+ * When set to false, users cannot dismiss the automatic modal manually.
61
+ * They can only exit by opening the update action and reopening the app after updating.
62
+ *
63
+ * @default true
64
+ */
65
+ autoPromptDismissible?: boolean;
57
66
  /**
58
67
  * Explicit latest version to compare with.
59
68
  * If provided, this value is used before any API lookup.
@@ -1 +1 @@
1
- {"version":3,"file":"definitions.js","sourceRoot":"","sources":["../../src/definitions.ts"],"names":[],"mappings":"","sourcesContent":["import type { PluginListenerHandle } from '@capacitor/core';\n\nexport type WebViewVersionState = 'latest' | 'outdated' | 'unknown';\n\nexport type WebViewPlatform = 'android' | 'ios' | 'web';\n\n/**\n * Capacitor config shape for `plugins.WebviewVersionChecker`.\n *\n * Main use case (default, no plugin config required):\n * Browserslist-style compatibility checks with a built-in version-share dataset\n * generated from caniuse at plugin build time.\n *\n * ```ts\n * plugins: {\n * WebviewVersionChecker: {}\n * }\n * ```\n *\n * Simple setup with automatic prompt:\n *\n * ```ts\n * plugins: {\n * WebviewVersionChecker: {\n * autoPromptOnOutdated: true,\n * }\n * }\n * ```\n *\n * Advanced setup with custom dataset and threshold:\n *\n * ```ts\n * plugins: {\n * WebviewVersionChecker: {\n * minimumDeviceSharePercent: 3,\n * versionShareByMajor: { '137': 58.2, '136': 21.3, '135': 4.6 },\n * }\n * }\n * ```\n */\nexport interface WebviewVersionCheckerConfig {\n /**\n * Automatically run a version check once when the plugin loads.\n *\n * @default true\n */\n autoCheckOnLoad?: boolean;\n\n /**\n * Automatically run a version check each time the app returns to foreground.\n *\n * @default true\n */\n autoCheckOnResume?: boolean;\n\n /**\n * Automatically show a native update prompt whenever an outdated WebView is detected.\n *\n * @default false\n */\n autoPromptOnOutdated?: boolean;\n\n /**\n * Explicit latest version to compare with.\n * If provided, this value is used before any API lookup.\n */\n latestVersion?: string;\n\n /**\n * Fallback minimum allowed major version.\n * Used when `latestVersion` cannot be resolved.\n */\n minimumMajorVersion?: number;\n\n /**\n * Browserslist-style compatibility threshold in percentage points.\n *\n * Example: `3` means the installed WebView major version must represent at least 3%\n * of devices in the selected version-share dataset.\n *\n * Data source priority:\n * - `versionShareByMajor` (inline dataset) if provided\n * - else `versionShareApiUrl` if provided\n * - else built-in generated dataset (`generatedVersionShareByMajor`)\n *\n * If the threshold cannot be evaluated (missing dataset or missing major entry),\n * the plugin falls back to normal version checks (`latestVersion` / `latestVersionApiUrl`,\n * then `minimumMajorVersion`).\n *\n * @default 3\n */\n minimumDeviceSharePercent?: number;\n\n /**\n * Optional inline dataset for major-version device share.\n *\n * Keys are major versions (string or number-like), values are percentages (`0..100`).\n *\n * Example:\n * `{ \"137\": 54.2, \"136\": 23.8, \"135\": 7.1, \"134\": 2.4 }`\n *\n * Used when `minimumDeviceSharePercent` is set.\n * If both `versionShareByMajor` and `versionShareApiUrl` are provided,\n * this inline map is used first.\n */\n versionShareByMajor?: Record<string, number>;\n\n /**\n * Optional endpoint returning a version-share dataset.\n *\n * Used when `minimumDeviceSharePercent` is set and no inline `versionShareByMajor`\n * is provided. If omitted, the plugin uses its built-in generated dataset.\n *\n * Supported response shapes:\n * - `{ \"versionShareByMajor\": { \"137\": 54.2, \"136\": 23.8 } }`\n * - `{ \"shareByMajor\": { \"137\": 54.2, \"136\": 23.8 } }`\n * - `{ \"versions\": [{ \"major\": 137, \"share\": 54.2 }, { \"version\": \"136.0.0.0\", \"percent\": 23.8 }] }`\n * - Caniuse full dataset shape (`agents.*.usage_global`)\n */\n versionShareApiUrl?: string;\n\n /**\n * Optional endpoint returning a JSON payload with the latest version.\n *\n * Supported response shapes:\n * - `{ \"version\": \"137.0.7151.44\" }`\n * - `{ \"latestVersion\": \"137.0.7151.44\" }`\n * - Google version history format: `{ \"versions\": [{ \"version\": \"137.0.7151.44\" }] }`\n */\n latestVersionApiUrl?: string;\n\n /**\n * Optional URL opened when users tap update in the native prompt.\n *\n * Android default: Play Store listing of the active WebView package.\n * iOS default: Apple iOS update help page.\n */\n updateUrl?: string;\n\n /**\n * Native prompt title.\n */\n promptTitle?: string;\n\n /**\n * Native prompt message.\n */\n promptMessage?: string;\n\n /**\n * Native prompt update button text.\n */\n promptUpdateButtonText?: string;\n\n /**\n * Native prompt cancel button text.\n */\n promptCancelButtonText?: string;\n}\n\n/**\n * Options for running a WebView version check.\n */\nexport interface CheckWebViewOptions extends WebviewVersionCheckerConfig {\n /**\n * Force showing a native prompt if an outdated WebView is detected.\n *\n * @default false\n */\n showPromptOnOutdated?: boolean;\n\n /**\n * Optional tag included in the status payload so you can identify the check origin.\n *\n * @default \"manual\"\n */\n source?: string;\n}\n\n/**\n * Options for starting monitor mode.\n */\nexport interface StartMonitoringOptions extends CheckWebViewOptions {\n /**\n * Run a check immediately when monitoring starts.\n *\n * @default true\n */\n checkOnStart?: boolean;\n\n /**\n * Whether foreground checks should run while monitoring is enabled.\n *\n * @default true\n */\n checkOnResume?: boolean;\n}\n\n/**\n * Options for showing the native update prompt.\n */\nexport interface ShowUpdatePromptOptions {\n /**\n * Prompt title.\n */\n title?: string;\n\n /**\n * Prompt message.\n */\n message?: string;\n\n /**\n * Update CTA label.\n */\n updateButtonText?: string;\n\n /**\n * Cancel CTA label.\n */\n cancelButtonText?: string;\n\n /**\n * Optional URL to open if the update action is selected.\n */\n updateUrl?: string;\n}\n\n/**\n * Options for opening the update page directly.\n */\nexport interface OpenUpdatePageOptions {\n /**\n * Optional URL override.\n */\n updateUrl?: string;\n}\n\n/**\n * Snapshot of the currently detected WebView status.\n */\nexport interface WebViewVersionStatus {\n /**\n * Native platform that generated the status.\n */\n platform: WebViewPlatform;\n\n /**\n * Resolved version state.\n */\n state: WebViewVersionState;\n\n /**\n * Convenience boolean equivalent to `state === 'latest'`.\n */\n isLatest: boolean;\n\n /**\n * ISO-8601 timestamp of the check.\n */\n checkedAt: string;\n\n /**\n * Human-readable explanation for the reported state.\n */\n reason: string;\n\n /**\n * Current WebView (or iOS system WebKit) version string.\n */\n currentVersion: string;\n\n /**\n * Current detected major version (if parseable).\n */\n currentMajorVersion?: number;\n\n /**\n * Resolved latest version used for comparison.\n */\n latestVersion?: string;\n\n /**\n * Resolved latest major version (if parseable).\n */\n latestMajorVersion?: number;\n\n /**\n * Device-share percentage for the installed WebView major version.\n *\n * Present only when a version-share dataset is available and includes the current major version.\n */\n currentVersionSharePercent?: number;\n\n /**\n * Configured threshold used by compatibility-threshold mode.\n *\n * Present only when `minimumDeviceSharePercent` was requested for that check.\n */\n minimumDeviceSharePercent?: number;\n\n /**\n * Source used for version-share data.\n *\n * Values:\n * - `versionShareByMajor` (inline dataset)\n * - `versionShareApiUrl` (remote dataset)\n * - `generatedVersionShareByMajor` (built-in dataset generated at build time)\n */\n versionShareSource?: string;\n\n /**\n * Diagnostic message for compatibility-threshold mode.\n *\n * Present when `minimumDeviceSharePercent` was requested but the threshold check\n * could not be fully evaluated.\n */\n deviceShareError?: string;\n\n /**\n * Android package name of the active WebView provider.\n */\n providerPackage?: string;\n\n /**\n * URL that should be opened to update when outdated.\n */\n updateUrl?: string;\n\n /**\n * Internal source identifier for the check implementation.\n */\n source: string;\n}\n\n/**\n * Result payload for monitor controls.\n */\nexport interface MonitoringStateResult {\n /**\n * Whether monitoring is currently active.\n */\n monitoring: boolean;\n\n /**\n * Whether checks run on app resume while monitoring is active.\n */\n checkOnResume: boolean;\n\n /**\n * Whether outdated checks auto-trigger the native prompt.\n */\n autoPromptOnOutdated: boolean;\n}\n\n/**\n * Last known check snapshot.\n */\nexport interface LastStatusResult {\n /**\n * Null until the first check completes.\n */\n status: WebViewVersionStatus | null;\n}\n\n/**\n * Result payload for `showUpdatePrompt()`.\n */\nexport interface ShowUpdatePromptResult {\n /**\n * Whether a native prompt was actually shown.\n */\n shown: boolean;\n\n /**\n * Whether the update page was opened from the prompt action.\n */\n openedUpdatePage: boolean;\n}\n\n/**\n * Result payload for `openUpdatePage()`.\n */\nexport interface OpenUpdatePageResult {\n /**\n * Whether opening the update URL succeeded.\n */\n opened: boolean;\n\n /**\n * URL that was attempted.\n */\n url: string;\n}\n\n/**\n * Public API for checking WebView freshness and guiding users to updates.\n */\nexport interface WebviewVersionCheckerPlugin {\n /**\n * Runs a version check and returns the latest known status.\n */\n check(options?: CheckWebViewOptions): Promise<WebViewVersionStatus>;\n\n /**\n * Enables background monitoring (typically on app resume).\n */\n startMonitoring(options?: StartMonitoringOptions): Promise<MonitoringStateResult>;\n\n /**\n * Disables monitoring.\n */\n stopMonitoring(): Promise<MonitoringStateResult>;\n\n /**\n * Returns the last resolved status, or `null` if no check was run yet.\n */\n getLastStatus(): Promise<LastStatusResult>;\n\n /**\n * Shows a native prompt asking the user to update the WebView.\n */\n showUpdatePrompt(options?: ShowUpdatePromptOptions): Promise<ShowUpdatePromptResult>;\n\n /**\n * Opens the configured update page directly.\n */\n openUpdatePage(options?: OpenUpdatePageOptions): Promise<OpenUpdatePageResult>;\n\n /**\n * Fired for every successful status evaluation.\n */\n addListener(\n eventName: 'statusChanged',\n listenerFunc: (status: WebViewVersionStatus) => void,\n ): Promise<PluginListenerHandle>;\n\n /**\n * Fired when the state resolves to `latest`.\n */\n addListener(\n eventName: 'webViewLatest',\n listenerFunc: (status: WebViewVersionStatus) => void,\n ): Promise<PluginListenerHandle>;\n\n /**\n * Fired when the state resolves to `outdated`.\n */\n addListener(\n eventName: 'webViewOutdated',\n listenerFunc: (status: WebViewVersionStatus) => void,\n ): Promise<PluginListenerHandle>;\n}\n"]}
1
+ {"version":3,"file":"definitions.js","sourceRoot":"","sources":["../../src/definitions.ts"],"names":[],"mappings":"","sourcesContent":["import type { PluginListenerHandle } from '@capacitor/core';\n\nexport type WebViewVersionState = 'latest' | 'outdated' | 'unknown';\n\nexport type WebViewPlatform = 'android' | 'ios' | 'web';\n\n/**\n * Capacitor config shape for `plugins.WebviewVersionChecker`.\n *\n * Main use case (default, no plugin config required):\n * Browserslist-style compatibility checks with a built-in version-share dataset\n * generated from caniuse at plugin build time.\n *\n * ```ts\n * plugins: {\n * WebviewVersionChecker: {}\n * }\n * ```\n *\n * Simple setup with automatic prompt:\n *\n * ```ts\n * plugins: {\n * WebviewVersionChecker: {\n * autoPromptOnOutdated: true,\n * }\n * }\n * ```\n *\n * Advanced setup with custom dataset and threshold:\n *\n * ```ts\n * plugins: {\n * WebviewVersionChecker: {\n * minimumDeviceSharePercent: 3,\n * versionShareByMajor: { '137': 58.2, '136': 21.3, '135': 4.6 },\n * }\n * }\n * ```\n */\nexport interface WebviewVersionCheckerConfig {\n /**\n * Automatically run a version check once when the plugin loads.\n *\n * @default true\n */\n autoCheckOnLoad?: boolean;\n\n /**\n * Automatically run a version check each time the app returns to foreground.\n *\n * @default true\n */\n autoCheckOnResume?: boolean;\n\n /**\n * Automatically show a native update prompt whenever an outdated WebView is detected.\n *\n * @default false\n */\n autoPromptOnOutdated?: boolean;\n\n /**\n * Controls whether the automatic modal can be dismissed.\n *\n * When set to false, users cannot dismiss the automatic modal manually.\n * They can only exit by opening the update action and reopening the app after updating.\n *\n * @default true\n */\n autoPromptDismissible?: boolean;\n\n /**\n * Explicit latest version to compare with.\n * If provided, this value is used before any API lookup.\n */\n latestVersion?: string;\n\n /**\n * Fallback minimum allowed major version.\n * Used when `latestVersion` cannot be resolved.\n */\n minimumMajorVersion?: number;\n\n /**\n * Browserslist-style compatibility threshold in percentage points.\n *\n * Example: `3` means the installed WebView major version must represent at least 3%\n * of devices in the selected version-share dataset.\n *\n * Data source priority:\n * - `versionShareByMajor` (inline dataset) if provided\n * - else `versionShareApiUrl` if provided\n * - else built-in generated dataset (`generatedVersionShareByMajor`)\n *\n * If the threshold cannot be evaluated (missing dataset or missing major entry),\n * the plugin falls back to normal version checks (`latestVersion` / `latestVersionApiUrl`,\n * then `minimumMajorVersion`).\n *\n * @default 3\n */\n minimumDeviceSharePercent?: number;\n\n /**\n * Optional inline dataset for major-version device share.\n *\n * Keys are major versions (string or number-like), values are percentages (`0..100`).\n *\n * Example:\n * `{ \"137\": 54.2, \"136\": 23.8, \"135\": 7.1, \"134\": 2.4 }`\n *\n * Used when `minimumDeviceSharePercent` is set.\n * If both `versionShareByMajor` and `versionShareApiUrl` are provided,\n * this inline map is used first.\n */\n versionShareByMajor?: Record<string, number>;\n\n /**\n * Optional endpoint returning a version-share dataset.\n *\n * Used when `minimumDeviceSharePercent` is set and no inline `versionShareByMajor`\n * is provided. If omitted, the plugin uses its built-in generated dataset.\n *\n * Supported response shapes:\n * - `{ \"versionShareByMajor\": { \"137\": 54.2, \"136\": 23.8 } }`\n * - `{ \"shareByMajor\": { \"137\": 54.2, \"136\": 23.8 } }`\n * - `{ \"versions\": [{ \"major\": 137, \"share\": 54.2 }, { \"version\": \"136.0.0.0\", \"percent\": 23.8 }] }`\n * - Caniuse full dataset shape (`agents.*.usage_global`)\n */\n versionShareApiUrl?: string;\n\n /**\n * Optional endpoint returning a JSON payload with the latest version.\n *\n * Supported response shapes:\n * - `{ \"version\": \"137.0.7151.44\" }`\n * - `{ \"latestVersion\": \"137.0.7151.44\" }`\n * - Google version history format: `{ \"versions\": [{ \"version\": \"137.0.7151.44\" }] }`\n */\n latestVersionApiUrl?: string;\n\n /**\n * Optional URL opened when users tap update in the native prompt.\n *\n * Android default: Play Store listing of the active WebView package.\n * iOS default: Apple iOS update help page.\n */\n updateUrl?: string;\n\n /**\n * Native prompt title.\n */\n promptTitle?: string;\n\n /**\n * Native prompt message.\n */\n promptMessage?: string;\n\n /**\n * Native prompt update button text.\n */\n promptUpdateButtonText?: string;\n\n /**\n * Native prompt cancel button text.\n */\n promptCancelButtonText?: string;\n}\n\n/**\n * Options for running a WebView version check.\n */\nexport interface CheckWebViewOptions extends WebviewVersionCheckerConfig {\n /**\n * Force showing a native prompt if an outdated WebView is detected.\n *\n * @default false\n */\n showPromptOnOutdated?: boolean;\n\n /**\n * Optional tag included in the status payload so you can identify the check origin.\n *\n * @default \"manual\"\n */\n source?: string;\n}\n\n/**\n * Options for starting monitor mode.\n */\nexport interface StartMonitoringOptions extends CheckWebViewOptions {\n /**\n * Run a check immediately when monitoring starts.\n *\n * @default true\n */\n checkOnStart?: boolean;\n\n /**\n * Whether foreground checks should run while monitoring is enabled.\n *\n * @default true\n */\n checkOnResume?: boolean;\n}\n\n/**\n * Options for showing the native update prompt.\n */\nexport interface ShowUpdatePromptOptions {\n /**\n * Prompt title.\n */\n title?: string;\n\n /**\n * Prompt message.\n */\n message?: string;\n\n /**\n * Update CTA label.\n */\n updateButtonText?: string;\n\n /**\n * Cancel CTA label.\n */\n cancelButtonText?: string;\n\n /**\n * Optional URL to open if the update action is selected.\n */\n updateUrl?: string;\n}\n\n/**\n * Options for opening the update page directly.\n */\nexport interface OpenUpdatePageOptions {\n /**\n * Optional URL override.\n */\n updateUrl?: string;\n}\n\n/**\n * Snapshot of the currently detected WebView status.\n */\nexport interface WebViewVersionStatus {\n /**\n * Native platform that generated the status.\n */\n platform: WebViewPlatform;\n\n /**\n * Resolved version state.\n */\n state: WebViewVersionState;\n\n /**\n * Convenience boolean equivalent to `state === 'latest'`.\n */\n isLatest: boolean;\n\n /**\n * ISO-8601 timestamp of the check.\n */\n checkedAt: string;\n\n /**\n * Human-readable explanation for the reported state.\n */\n reason: string;\n\n /**\n * Current WebView (or iOS system WebKit) version string.\n */\n currentVersion: string;\n\n /**\n * Current detected major version (if parseable).\n */\n currentMajorVersion?: number;\n\n /**\n * Resolved latest version used for comparison.\n */\n latestVersion?: string;\n\n /**\n * Resolved latest major version (if parseable).\n */\n latestMajorVersion?: number;\n\n /**\n * Device-share percentage for the installed WebView major version.\n *\n * Present only when a version-share dataset is available and includes the current major version.\n */\n currentVersionSharePercent?: number;\n\n /**\n * Configured threshold used by compatibility-threshold mode.\n *\n * Present only when `minimumDeviceSharePercent` was requested for that check.\n */\n minimumDeviceSharePercent?: number;\n\n /**\n * Source used for version-share data.\n *\n * Values:\n * - `versionShareByMajor` (inline dataset)\n * - `versionShareApiUrl` (remote dataset)\n * - `generatedVersionShareByMajor` (built-in dataset generated at build time)\n */\n versionShareSource?: string;\n\n /**\n * Diagnostic message for compatibility-threshold mode.\n *\n * Present when `minimumDeviceSharePercent` was requested but the threshold check\n * could not be fully evaluated.\n */\n deviceShareError?: string;\n\n /**\n * Android package name of the active WebView provider.\n */\n providerPackage?: string;\n\n /**\n * URL that should be opened to update when outdated.\n */\n updateUrl?: string;\n\n /**\n * Internal source identifier for the check implementation.\n */\n source: string;\n}\n\n/**\n * Result payload for monitor controls.\n */\nexport interface MonitoringStateResult {\n /**\n * Whether monitoring is currently active.\n */\n monitoring: boolean;\n\n /**\n * Whether checks run on app resume while monitoring is active.\n */\n checkOnResume: boolean;\n\n /**\n * Whether outdated checks auto-trigger the native prompt.\n */\n autoPromptOnOutdated: boolean;\n}\n\n/**\n * Last known check snapshot.\n */\nexport interface LastStatusResult {\n /**\n * Null until the first check completes.\n */\n status: WebViewVersionStatus | null;\n}\n\n/**\n * Result payload for `showUpdatePrompt()`.\n */\nexport interface ShowUpdatePromptResult {\n /**\n * Whether a native prompt was actually shown.\n */\n shown: boolean;\n\n /**\n * Whether the update page was opened from the prompt action.\n */\n openedUpdatePage: boolean;\n}\n\n/**\n * Result payload for `openUpdatePage()`.\n */\nexport interface OpenUpdatePageResult {\n /**\n * Whether opening the update URL succeeded.\n */\n opened: boolean;\n\n /**\n * URL that was attempted.\n */\n url: string;\n}\n\n/**\n * Public API for checking WebView freshness and guiding users to updates.\n */\nexport interface WebviewVersionCheckerPlugin {\n /**\n * Runs a version check and returns the latest known status.\n */\n check(options?: CheckWebViewOptions): Promise<WebViewVersionStatus>;\n\n /**\n * Enables background monitoring (typically on app resume).\n */\n startMonitoring(options?: StartMonitoringOptions): Promise<MonitoringStateResult>;\n\n /**\n * Disables monitoring.\n */\n stopMonitoring(): Promise<MonitoringStateResult>;\n\n /**\n * Returns the last resolved status, or `null` if no check was run yet.\n */\n getLastStatus(): Promise<LastStatusResult>;\n\n /**\n * Shows a native prompt asking the user to update the WebView.\n */\n showUpdatePrompt(options?: ShowUpdatePromptOptions): Promise<ShowUpdatePromptResult>;\n\n /**\n * Opens the configured update page directly.\n */\n openUpdatePage(options?: OpenUpdatePageOptions): Promise<OpenUpdatePageResult>;\n\n /**\n * Fired for every successful status evaluation.\n */\n addListener(\n eventName: 'statusChanged',\n listenerFunc: (status: WebViewVersionStatus) => void,\n ): Promise<PluginListenerHandle>;\n\n /**\n * Fired when the state resolves to `latest`.\n */\n addListener(\n eventName: 'webViewLatest',\n listenerFunc: (status: WebViewVersionStatus) => void,\n ): Promise<PluginListenerHandle>;\n\n /**\n * Fired when the state resolves to `outdated`.\n */\n addListener(\n eventName: 'webViewOutdated',\n listenerFunc: (status: WebViewVersionStatus) => void,\n ): Promise<PluginListenerHandle>;\n}\n"]}
@@ -2,8 +2,8 @@
2
2
  * AUTO-GENERATED FILE. DO NOT EDIT.
3
3
  * Generated by: scripts/generate-version-share-data.mjs
4
4
  * Source: https://raw.githubusercontent.com/Fyrd/caniuse/main/data.json
5
- * Generated at: 2026-02-20T04:04:07.658Z
5
+ * Generated at: 2026-02-22T16:25:02.516Z
6
6
  */
7
7
  export declare const DEFAULT_VERSION_SHARE_DATA_SOURCE = "generatedVersionShareByMajor";
8
- export declare const DEFAULT_VERSION_SHARE_GENERATED_AT = "2026-02-20T04:04:07.658Z";
8
+ export declare const DEFAULT_VERSION_SHARE_GENERATED_AT = "2026-02-22T16:25:02.516Z";
9
9
  export declare const DEFAULT_VERSION_SHARE_BY_MAJOR: Record<string, number>;
@@ -3,10 +3,10 @@
3
3
  * AUTO-GENERATED FILE. DO NOT EDIT.
4
4
  * Generated by: scripts/generate-version-share-data.mjs
5
5
  * Source: https://raw.githubusercontent.com/Fyrd/caniuse/main/data.json
6
- * Generated at: 2026-02-20T04:04:07.658Z
6
+ * Generated at: 2026-02-22T16:25:02.516Z
7
7
  */
8
8
  export const DEFAULT_VERSION_SHARE_DATA_SOURCE = 'generatedVersionShareByMajor';
9
- export const DEFAULT_VERSION_SHARE_GENERATED_AT = '2026-02-20T04:04:07.658Z';
9
+ export const DEFAULT_VERSION_SHARE_GENERATED_AT = '2026-02-22T16:25:02.516Z';
10
10
  export const DEFAULT_VERSION_SHARE_BY_MAJOR = {
11
11
  "4": 0.000092,
12
12
  "39": 0.004796,
@@ -100,7 +100,7 @@ export const DEFAULT_VERSION_SHARE_BY_MAJOR = {
100
100
  "141": 0.398068,
101
101
  "142": 1.29972,
102
102
  "143": 10.4121,
103
- "144": 41.8835,
104
- "145": 0.019184
103
+ "144": 3.76486,
104
+ "145": 41.8835
105
105
  };
106
106
  //# sourceMappingURL=generated-version-share.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"generated-version-share.js","sourceRoot":"","sources":["../../src/generated-version-share.ts"],"names":[],"mappings":"AAAA,oBAAoB;AACpB;;;;;GAKG;AAEH,MAAM,CAAC,MAAM,iCAAiC,GAAG,8BAA8B,CAAC;AAChF,MAAM,CAAC,MAAM,kCAAkC,GAAG,0BAA0B,CAAC;AAC7E,MAAM,CAAC,MAAM,8BAA8B,GAA2B;IACpE,GAAG,EAAE,QAAQ;IACb,IAAI,EAAE,QAAQ;IACd,IAAI,EAAE,QAAQ;IACd,IAAI,EAAE,QAAQ;IACd,IAAI,EAAE,QAAQ;IACd,IAAI,EAAE,QAAQ;IACd,IAAI,EAAE,QAAQ;IACd,IAAI,EAAE,QAAQ;IACd,IAAI,EAAE,QAAQ;IACd,IAAI,EAAE,QAAQ;IACd,IAAI,EAAE,QAAQ;IACd,IAAI,EAAE,QAAQ;IACd,IAAI,EAAE,QAAQ;IACd,IAAI,EAAE,QAAQ;IACd,IAAI,EAAE,QAAQ;IACd,IAAI,EAAE,QAAQ;IACd,IAAI,EAAE,QAAQ;IACd,IAAI,EAAE,QAAQ;IACd,IAAI,EAAE,QAAQ;IACd,IAAI,EAAE,QAAQ;IACd,IAAI,EAAE,QAAQ;IACd,IAAI,EAAE,QAAQ;IACd,IAAI,EAAE,QAAQ;IACd,IAAI,EAAE,QAAQ;IACd,IAAI,EAAE,QAAQ;IACd,IAAI,EAAE,QAAQ;IACd,IAAI,EAAE,QAAQ;IACd,IAAI,EAAE,QAAQ;IACd,IAAI,EAAE,OAAO;IACb,IAAI,EAAE,QAAQ;IACd,IAAI,EAAE,QAAQ;IACd,IAAI,EAAE,QAAQ;IACd,IAAI,EAAE,QAAQ;IACd,IAAI,EAAE,QAAQ;IACd,IAAI,EAAE,QAAQ;IACd,IAAI,EAAE,QAAQ;IACd,IAAI,EAAE,QAAQ;IACd,IAAI,EAAE,QAAQ;IACd,IAAI,EAAE,QAAQ;IACd,IAAI,EAAE,QAAQ;IACd,IAAI,EAAE,QAAQ;IACd,IAAI,EAAE,QAAQ;IACd,IAAI,EAAE,QAAQ;IACd,IAAI,EAAE,QAAQ;IACd,IAAI,EAAE,QAAQ;IACd,IAAI,EAAE,QAAQ;IACd,IAAI,EAAE,QAAQ;IACd,IAAI,EAAE,OAAO;IACb,IAAI,EAAE,QAAQ;IACd,KAAK,EAAE,QAAQ;IACf,KAAK,EAAE,QAAQ;IACf,KAAK,EAAE,OAAO;IACd,KAAK,EAAE,QAAQ;IACf,KAAK,EAAE,QAAQ;IACf,KAAK,EAAE,QAAQ;IACf,KAAK,EAAE,QAAQ;IACf,KAAK,EAAE,QAAQ;IACf,KAAK,EAAE,QAAQ;IACf,KAAK,EAAE,QAAQ;IACf,KAAK,EAAE,QAAQ;IACf,KAAK,EAAE,OAAO;IACd,KAAK,EAAE,QAAQ;IACf,KAAK,EAAE,QAAQ;IACf,KAAK,EAAE,OAAO;IACd,KAAK,EAAE,QAAQ;IACf,KAAK,EAAE,QAAQ;IACf,KAAK,EAAE,QAAQ;IACf,KAAK,EAAE,QAAQ;IACf,KAAK,EAAE,OAAO;IACd,KAAK,EAAE,OAAO;IACd,KAAK,EAAE,QAAQ;IACf,KAAK,EAAE,QAAQ;IACf,KAAK,EAAE,QAAQ;IACf,KAAK,EAAE,QAAQ;IACf,KAAK,EAAE,QAAQ;IACf,KAAK,EAAE,QAAQ;IACf,KAAK,EAAE,QAAQ;IACf,KAAK,EAAE,QAAQ;IACf,KAAK,EAAE,OAAO;IACd,KAAK,EAAE,QAAQ;IACf,KAAK,EAAE,QAAQ;IACf,KAAK,EAAE,OAAO;IACd,KAAK,EAAE,QAAQ;IACf,KAAK,EAAE,QAAQ;IACf,KAAK,EAAE,OAAO;IACd,KAAK,EAAE,QAAQ;IACf,KAAK,EAAE,QAAQ;IACf,KAAK,EAAE,OAAO;IACd,KAAK,EAAE,QAAQ;IACf,KAAK,EAAE,QAAQ;IACf,KAAK,EAAE,OAAO;IACd,KAAK,EAAE,OAAO;IACd,KAAK,EAAE,OAAO;IACd,KAAK,EAAE,QAAQ;CAChB,CAAC","sourcesContent":["/* eslint-disable */\n/**\n * AUTO-GENERATED FILE. DO NOT EDIT.\n * Generated by: scripts/generate-version-share-data.mjs\n * Source: https://raw.githubusercontent.com/Fyrd/caniuse/main/data.json\n * Generated at: 2026-02-20T04:04:07.658Z\n */\n\nexport const DEFAULT_VERSION_SHARE_DATA_SOURCE = 'generatedVersionShareByMajor';\nexport const DEFAULT_VERSION_SHARE_GENERATED_AT = '2026-02-20T04:04:07.658Z';\nexport const DEFAULT_VERSION_SHARE_BY_MAJOR: Record<string, number> = {\n \"4\": 0.000092,\n \"39\": 0.004796,\n \"40\": 0.004796,\n \"41\": 0.009592,\n \"42\": 0.004796,\n \"43\": 0.004796,\n \"44\": 0.004796,\n \"45\": 0.009592,\n \"46\": 0.004796,\n \"47\": 0.009592,\n \"48\": 0.014388,\n \"49\": 0.014388,\n \"50\": 0.009592,\n \"51\": 0.009592,\n \"52\": 0.014388,\n \"53\": 0.009592,\n \"54\": 0.004796,\n \"55\": 0.009592,\n \"56\": 0.009592,\n \"57\": 0.009592,\n \"58\": 0.009592,\n \"59\": 0.009592,\n \"60\": 0.014388,\n \"61\": 0.004796,\n \"62\": 0.009592,\n \"63\": 0.009592,\n \"64\": 0.009592,\n \"65\": 0.004796,\n \"66\": 0.02398,\n \"67\": 0.009592,\n \"68\": 0.009592,\n \"69\": 0.033572,\n \"70\": 0.009592,\n \"75\": 0.004796,\n \"77\": 0.004796,\n \"79\": 0.067144,\n \"80\": 0.009592,\n \"81\": 0.009592,\n \"83\": 0.043164,\n \"85\": 0.004796,\n \"86\": 0.009592,\n \"87\": 0.028776,\n \"88\": 0.004796,\n \"91\": 0.019184,\n \"92\": 0.014388,\n \"93\": 0.009592,\n \"97\": 0.009592,\n \"98\": 0.04796,\n \"99\": 0.043164,\n \"101\": 0.014388,\n \"102\": 0.009592,\n \"103\": 0.26378,\n \"104\": 0.230208,\n \"105\": 0.273372,\n \"106\": 0.206228,\n \"107\": 0.230208,\n \"108\": 0.230208,\n \"109\": 0.786544,\n \"110\": 0.235004,\n \"111\": 0.292556,\n \"112\": 2.71454,\n \"113\": 0.004796,\n \"114\": 0.062348,\n \"115\": 0.02398,\n \"116\": 0.446028,\n \"117\": 0.282964,\n \"118\": 0.052756,\n \"119\": 0.038368,\n \"120\": 0.31174,\n \"121\": 0.04796,\n \"122\": 0.091124,\n \"123\": 0.062348,\n \"124\": 0.230208,\n \"125\": 0.244596,\n \"126\": 0.052756,\n \"127\": 0.052756,\n \"128\": 0.076736,\n \"129\": 0.067144,\n \"130\": 0.09592,\n \"131\": 0.709808,\n \"132\": 0.139084,\n \"133\": 0.52756,\n \"134\": 0.067144,\n \"135\": 0.067144,\n \"136\": 0.09592,\n \"137\": 0.062348,\n \"138\": 0.235004,\n \"139\": 3.34761,\n \"140\": 0.177452,\n \"141\": 0.398068,\n \"142\": 1.29972,\n \"143\": 10.4121,\n \"144\": 41.8835,\n \"145\": 0.019184\n};\n"]}
1
+ {"version":3,"file":"generated-version-share.js","sourceRoot":"","sources":["../../src/generated-version-share.ts"],"names":[],"mappings":"AAAA,oBAAoB;AACpB;;;;;GAKG;AAEH,MAAM,CAAC,MAAM,iCAAiC,GAAG,8BAA8B,CAAC;AAChF,MAAM,CAAC,MAAM,kCAAkC,GAAG,0BAA0B,CAAC;AAC7E,MAAM,CAAC,MAAM,8BAA8B,GAA2B;IACpE,GAAG,EAAE,QAAQ;IACb,IAAI,EAAE,QAAQ;IACd,IAAI,EAAE,QAAQ;IACd,IAAI,EAAE,QAAQ;IACd,IAAI,EAAE,QAAQ;IACd,IAAI,EAAE,QAAQ;IACd,IAAI,EAAE,QAAQ;IACd,IAAI,EAAE,QAAQ;IACd,IAAI,EAAE,QAAQ;IACd,IAAI,EAAE,QAAQ;IACd,IAAI,EAAE,QAAQ;IACd,IAAI,EAAE,QAAQ;IACd,IAAI,EAAE,QAAQ;IACd,IAAI,EAAE,QAAQ;IACd,IAAI,EAAE,QAAQ;IACd,IAAI,EAAE,QAAQ;IACd,IAAI,EAAE,QAAQ;IACd,IAAI,EAAE,QAAQ;IACd,IAAI,EAAE,QAAQ;IACd,IAAI,EAAE,QAAQ;IACd,IAAI,EAAE,QAAQ;IACd,IAAI,EAAE,QAAQ;IACd,IAAI,EAAE,QAAQ;IACd,IAAI,EAAE,QAAQ;IACd,IAAI,EAAE,QAAQ;IACd,IAAI,EAAE,QAAQ;IACd,IAAI,EAAE,QAAQ;IACd,IAAI,EAAE,QAAQ;IACd,IAAI,EAAE,OAAO;IACb,IAAI,EAAE,QAAQ;IACd,IAAI,EAAE,QAAQ;IACd,IAAI,EAAE,QAAQ;IACd,IAAI,EAAE,QAAQ;IACd,IAAI,EAAE,QAAQ;IACd,IAAI,EAAE,QAAQ;IACd,IAAI,EAAE,QAAQ;IACd,IAAI,EAAE,QAAQ;IACd,IAAI,EAAE,QAAQ;IACd,IAAI,EAAE,QAAQ;IACd,IAAI,EAAE,QAAQ;IACd,IAAI,EAAE,QAAQ;IACd,IAAI,EAAE,QAAQ;IACd,IAAI,EAAE,QAAQ;IACd,IAAI,EAAE,QAAQ;IACd,IAAI,EAAE,QAAQ;IACd,IAAI,EAAE,QAAQ;IACd,IAAI,EAAE,QAAQ;IACd,IAAI,EAAE,OAAO;IACb,IAAI,EAAE,QAAQ;IACd,KAAK,EAAE,QAAQ;IACf,KAAK,EAAE,QAAQ;IACf,KAAK,EAAE,OAAO;IACd,KAAK,EAAE,QAAQ;IACf,KAAK,EAAE,QAAQ;IACf,KAAK,EAAE,QAAQ;IACf,KAAK,EAAE,QAAQ;IACf,KAAK,EAAE,QAAQ;IACf,KAAK,EAAE,QAAQ;IACf,KAAK,EAAE,QAAQ;IACf,KAAK,EAAE,QAAQ;IACf,KAAK,EAAE,OAAO;IACd,KAAK,EAAE,QAAQ;IACf,KAAK,EAAE,QAAQ;IACf,KAAK,EAAE,OAAO;IACd,KAAK,EAAE,QAAQ;IACf,KAAK,EAAE,QAAQ;IACf,KAAK,EAAE,QAAQ;IACf,KAAK,EAAE,QAAQ;IACf,KAAK,EAAE,OAAO;IACd,KAAK,EAAE,OAAO;IACd,KAAK,EAAE,QAAQ;IACf,KAAK,EAAE,QAAQ;IACf,KAAK,EAAE,QAAQ;IACf,KAAK,EAAE,QAAQ;IACf,KAAK,EAAE,QAAQ;IACf,KAAK,EAAE,QAAQ;IACf,KAAK,EAAE,QAAQ;IACf,KAAK,EAAE,QAAQ;IACf,KAAK,EAAE,OAAO;IACd,KAAK,EAAE,QAAQ;IACf,KAAK,EAAE,QAAQ;IACf,KAAK,EAAE,OAAO;IACd,KAAK,EAAE,QAAQ;IACf,KAAK,EAAE,QAAQ;IACf,KAAK,EAAE,OAAO;IACd,KAAK,EAAE,QAAQ;IACf,KAAK,EAAE,QAAQ;IACf,KAAK,EAAE,OAAO;IACd,KAAK,EAAE,QAAQ;IACf,KAAK,EAAE,QAAQ;IACf,KAAK,EAAE,OAAO;IACd,KAAK,EAAE,OAAO;IACd,KAAK,EAAE,OAAO;IACd,KAAK,EAAE,OAAO;CACf,CAAC","sourcesContent":["/* eslint-disable */\n/**\n * AUTO-GENERATED FILE. DO NOT EDIT.\n * Generated by: scripts/generate-version-share-data.mjs\n * Source: https://raw.githubusercontent.com/Fyrd/caniuse/main/data.json\n * Generated at: 2026-02-22T16:25:02.516Z\n */\n\nexport const DEFAULT_VERSION_SHARE_DATA_SOURCE = 'generatedVersionShareByMajor';\nexport const DEFAULT_VERSION_SHARE_GENERATED_AT = '2026-02-22T16:25:02.516Z';\nexport const DEFAULT_VERSION_SHARE_BY_MAJOR: Record<string, number> = {\n \"4\": 0.000092,\n \"39\": 0.004796,\n \"40\": 0.004796,\n \"41\": 0.009592,\n \"42\": 0.004796,\n \"43\": 0.004796,\n \"44\": 0.004796,\n \"45\": 0.009592,\n \"46\": 0.004796,\n \"47\": 0.009592,\n \"48\": 0.014388,\n \"49\": 0.014388,\n \"50\": 0.009592,\n \"51\": 0.009592,\n \"52\": 0.014388,\n \"53\": 0.009592,\n \"54\": 0.004796,\n \"55\": 0.009592,\n \"56\": 0.009592,\n \"57\": 0.009592,\n \"58\": 0.009592,\n \"59\": 0.009592,\n \"60\": 0.014388,\n \"61\": 0.004796,\n \"62\": 0.009592,\n \"63\": 0.009592,\n \"64\": 0.009592,\n \"65\": 0.004796,\n \"66\": 0.02398,\n \"67\": 0.009592,\n \"68\": 0.009592,\n \"69\": 0.033572,\n \"70\": 0.009592,\n \"75\": 0.004796,\n \"77\": 0.004796,\n \"79\": 0.067144,\n \"80\": 0.009592,\n \"81\": 0.009592,\n \"83\": 0.043164,\n \"85\": 0.004796,\n \"86\": 0.009592,\n \"87\": 0.028776,\n \"88\": 0.004796,\n \"91\": 0.019184,\n \"92\": 0.014388,\n \"93\": 0.009592,\n \"97\": 0.009592,\n \"98\": 0.04796,\n \"99\": 0.043164,\n \"101\": 0.014388,\n \"102\": 0.009592,\n \"103\": 0.26378,\n \"104\": 0.230208,\n \"105\": 0.273372,\n \"106\": 0.206228,\n \"107\": 0.230208,\n \"108\": 0.230208,\n \"109\": 0.786544,\n \"110\": 0.235004,\n \"111\": 0.292556,\n \"112\": 2.71454,\n \"113\": 0.004796,\n \"114\": 0.062348,\n \"115\": 0.02398,\n \"116\": 0.446028,\n \"117\": 0.282964,\n \"118\": 0.052756,\n \"119\": 0.038368,\n \"120\": 0.31174,\n \"121\": 0.04796,\n \"122\": 0.091124,\n \"123\": 0.062348,\n \"124\": 0.230208,\n \"125\": 0.244596,\n \"126\": 0.052756,\n \"127\": 0.052756,\n \"128\": 0.076736,\n \"129\": 0.067144,\n \"130\": 0.09592,\n \"131\": 0.709808,\n \"132\": 0.139084,\n \"133\": 0.52756,\n \"134\": 0.067144,\n \"135\": 0.067144,\n \"136\": 0.09592,\n \"137\": 0.062348,\n \"138\": 0.235004,\n \"139\": 3.34761,\n \"140\": 0.177452,\n \"141\": 0.398068,\n \"142\": 1.29972,\n \"143\": 10.4121,\n \"144\": 3.76486,\n \"145\": 41.8835\n};\n"]}
@@ -11,7 +11,7 @@ const WebviewVersionChecker = core.registerPlugin('WebviewVersionChecker', {
11
11
  * AUTO-GENERATED FILE. DO NOT EDIT.
12
12
  * Generated by: scripts/generate-version-share-data.mjs
13
13
  * Source: https://raw.githubusercontent.com/Fyrd/caniuse/main/data.json
14
- * Generated at: 2026-02-20T04:04:07.658Z
14
+ * Generated at: 2026-02-22T16:25:02.516Z
15
15
  */
16
16
  const DEFAULT_VERSION_SHARE_DATA_SOURCE = 'generatedVersionShareByMajor';
17
17
  const DEFAULT_VERSION_SHARE_BY_MAJOR = {
@@ -107,8 +107,8 @@ const DEFAULT_VERSION_SHARE_BY_MAJOR = {
107
107
  "141": 0.398068,
108
108
  "142": 1.29972,
109
109
  "143": 10.4121,
110
- "144": 41.8835,
111
- "145": 0.019184
110
+ "144": 3.76486,
111
+ "145": 41.8835
112
112
  };
113
113
 
114
114
  const UNKNOWN_REASON = 'Web implementation is a compatibility shim. Native Android/iOS implementations provide full WebView checks.';
@@ -1 +1 @@
1
- {"version":3,"file":"plugin.cjs.js","sources":["esm/index.js","esm/generated-version-share.js","esm/web.js"],"sourcesContent":["import { registerPlugin } from '@capacitor/core';\nconst WebviewVersionChecker = registerPlugin('WebviewVersionChecker', {\n web: () => import('./web').then((m) => new m.WebviewVersionCheckerWeb()),\n});\nexport * from './definitions';\nexport { WebviewVersionChecker };\n//# sourceMappingURL=index.js.map","/* eslint-disable */\n/**\n * AUTO-GENERATED FILE. DO NOT EDIT.\n * Generated by: scripts/generate-version-share-data.mjs\n * Source: https://raw.githubusercontent.com/Fyrd/caniuse/main/data.json\n * Generated at: 2026-02-20T04:04:07.658Z\n */\nexport const DEFAULT_VERSION_SHARE_DATA_SOURCE = 'generatedVersionShareByMajor';\nexport const DEFAULT_VERSION_SHARE_GENERATED_AT = '2026-02-20T04:04:07.658Z';\nexport const DEFAULT_VERSION_SHARE_BY_MAJOR = {\n \"4\": 0.000092,\n \"39\": 0.004796,\n \"40\": 0.004796,\n \"41\": 0.009592,\n \"42\": 0.004796,\n \"43\": 0.004796,\n \"44\": 0.004796,\n \"45\": 0.009592,\n \"46\": 0.004796,\n \"47\": 0.009592,\n \"48\": 0.014388,\n \"49\": 0.014388,\n \"50\": 0.009592,\n \"51\": 0.009592,\n \"52\": 0.014388,\n \"53\": 0.009592,\n \"54\": 0.004796,\n \"55\": 0.009592,\n \"56\": 0.009592,\n \"57\": 0.009592,\n \"58\": 0.009592,\n \"59\": 0.009592,\n \"60\": 0.014388,\n \"61\": 0.004796,\n \"62\": 0.009592,\n \"63\": 0.009592,\n \"64\": 0.009592,\n \"65\": 0.004796,\n \"66\": 0.02398,\n \"67\": 0.009592,\n \"68\": 0.009592,\n \"69\": 0.033572,\n \"70\": 0.009592,\n \"75\": 0.004796,\n \"77\": 0.004796,\n \"79\": 0.067144,\n \"80\": 0.009592,\n \"81\": 0.009592,\n \"83\": 0.043164,\n \"85\": 0.004796,\n \"86\": 0.009592,\n \"87\": 0.028776,\n \"88\": 0.004796,\n \"91\": 0.019184,\n \"92\": 0.014388,\n \"93\": 0.009592,\n \"97\": 0.009592,\n \"98\": 0.04796,\n \"99\": 0.043164,\n \"101\": 0.014388,\n \"102\": 0.009592,\n \"103\": 0.26378,\n \"104\": 0.230208,\n \"105\": 0.273372,\n \"106\": 0.206228,\n \"107\": 0.230208,\n \"108\": 0.230208,\n \"109\": 0.786544,\n \"110\": 0.235004,\n \"111\": 0.292556,\n \"112\": 2.71454,\n \"113\": 0.004796,\n \"114\": 0.062348,\n \"115\": 0.02398,\n \"116\": 0.446028,\n \"117\": 0.282964,\n \"118\": 0.052756,\n \"119\": 0.038368,\n \"120\": 0.31174,\n \"121\": 0.04796,\n \"122\": 0.091124,\n \"123\": 0.062348,\n \"124\": 0.230208,\n \"125\": 0.244596,\n \"126\": 0.052756,\n \"127\": 0.052756,\n \"128\": 0.076736,\n \"129\": 0.067144,\n \"130\": 0.09592,\n \"131\": 0.709808,\n \"132\": 0.139084,\n \"133\": 0.52756,\n \"134\": 0.067144,\n \"135\": 0.067144,\n \"136\": 0.09592,\n \"137\": 0.062348,\n \"138\": 0.235004,\n \"139\": 3.34761,\n \"140\": 0.177452,\n \"141\": 0.398068,\n \"142\": 1.29972,\n \"143\": 10.4121,\n \"144\": 41.8835,\n \"145\": 0.019184\n};\n//# sourceMappingURL=generated-version-share.js.map","import { WebPlugin } from '@capacitor/core';\nimport { DEFAULT_VERSION_SHARE_BY_MAJOR, DEFAULT_VERSION_SHARE_DATA_SOURCE } from './generated-version-share';\nconst UNKNOWN_REASON = 'Web implementation is a compatibility shim. Native Android/iOS implementations provide full WebView checks.';\nexport class WebviewVersionCheckerWeb extends WebPlugin {\n constructor() {\n super(...arguments);\n this.monitoring = false;\n this.checkOnResume = true;\n this.autoPromptOnOutdated = false;\n this.lastStatus = null;\n }\n async check(options = {}) {\n var _a, _b;\n const currentVersion = this.detectCurrentVersion();\n const currentMajorVersion = this.parseMajorVersion(currentVersion);\n const latestVersion = options.latestVersion;\n const latestMajorVersion = this.parseMajorVersion(latestVersion);\n const minimumDeviceSharePercent = this.normalizePercent((_a = options.minimumDeviceSharePercent) !== null && _a !== void 0 ? _a : 3);\n const normalizedInlineVersionShareByMajor = this.normalizeVersionShareByMajor(options.versionShareByMajor);\n const normalizedGeneratedVersionShareByMajor = this.normalizeVersionShareByMajor(DEFAULT_VERSION_SHARE_BY_MAJOR);\n const normalizedVersionShareByMajor = normalizedInlineVersionShareByMajor !== null && normalizedInlineVersionShareByMajor !== void 0 ? normalizedInlineVersionShareByMajor : normalizedGeneratedVersionShareByMajor;\n const versionShareSource = normalizedInlineVersionShareByMajor\n ? 'versionShareByMajor'\n : DEFAULT_VERSION_SHARE_DATA_SOURCE;\n const currentVersionSharePercent = this.resolveCurrentVersionSharePercent(currentMajorVersion, normalizedVersionShareByMajor);\n let deviceShareError;\n let state = 'unknown';\n let reason = UNKNOWN_REASON;\n if (typeof minimumDeviceSharePercent === 'number') {\n if (typeof currentVersionSharePercent === 'number') {\n state = currentVersionSharePercent >= minimumDeviceSharePercent ? 'latest' : 'outdated';\n reason =\n state === 'latest'\n ? 'Current browser engine major version meets the configured device-share threshold.'\n : 'Current browser engine major version is below the configured device-share threshold.';\n }\n else if (!normalizedVersionShareByMajor && options.versionShareApiUrl) {\n deviceShareError =\n 'Web shim does not fetch version-share API data. Provide versionShareByMajor to evaluate minimumDeviceSharePercent.';\n }\n else if (!normalizedVersionShareByMajor) {\n deviceShareError = 'minimumDeviceSharePercent is set, but no versionShareByMajor dataset was provided.';\n }\n else {\n deviceShareError = 'No device-share entry was found for the current browser engine major version.';\n }\n }\n if (state === 'unknown' && latestVersion && currentVersion) {\n const cmp = this.compareVersions(currentVersion, latestVersion);\n state = cmp >= 0 ? 'latest' : 'outdated';\n reason =\n cmp >= 0\n ? 'Current browser engine is at or above the requested latest version.'\n : 'Current browser engine is below the requested latest version.';\n }\n else if (state === 'unknown' &&\n typeof options.minimumMajorVersion === 'number' &&\n typeof currentMajorVersion === 'number') {\n state = currentMajorVersion >= options.minimumMajorVersion ? 'latest' : 'outdated';\n reason =\n state === 'latest'\n ? 'Current browser engine major version meets the minimum requirement.'\n : 'Current browser engine major version is below the minimum requirement.';\n }\n else if (state === 'unknown' && deviceShareError) {\n reason = deviceShareError;\n }\n const status = {\n platform: 'web',\n state,\n isLatest: state === 'latest',\n checkedAt: new Date().toISOString(),\n reason,\n currentVersion,\n currentMajorVersion,\n latestVersion,\n latestMajorVersion,\n currentVersionSharePercent,\n minimumDeviceSharePercent,\n versionShareSource: normalizedVersionShareByMajor ? versionShareSource : undefined,\n deviceShareError,\n updateUrl: options.updateUrl,\n source: (_b = options.source) !== null && _b !== void 0 ? _b : 'web-shim',\n };\n this.lastStatus = status;\n this.notifyListeners('statusChanged', status);\n if (state === 'latest') {\n this.notifyListeners('webViewLatest', status);\n }\n else if (state === 'outdated') {\n this.notifyListeners('webViewOutdated', status);\n if (options.showPromptOnOutdated || this.autoPromptOnOutdated) {\n await this.showUpdatePrompt({ updateUrl: status.updateUrl });\n }\n }\n return status;\n }\n async startMonitoring(options = {}) {\n var _a, _b, _c, _d;\n this.monitoring = true;\n this.checkOnResume = (_a = options.checkOnResume) !== null && _a !== void 0 ? _a : true;\n this.autoPromptOnOutdated = (_b = options.autoPromptOnOutdated) !== null && _b !== void 0 ? _b : false;\n if ((_c = options.checkOnStart) !== null && _c !== void 0 ? _c : true) {\n await this.check(Object.assign(Object.assign({}, options), { source: (_d = options.source) !== null && _d !== void 0 ? _d : 'startMonitoring' }));\n }\n return {\n monitoring: this.monitoring,\n checkOnResume: this.checkOnResume,\n autoPromptOnOutdated: this.autoPromptOnOutdated,\n };\n }\n async stopMonitoring() {\n this.monitoring = false;\n return {\n monitoring: this.monitoring,\n checkOnResume: this.checkOnResume,\n autoPromptOnOutdated: this.autoPromptOnOutdated,\n };\n }\n async getLastStatus() {\n return {\n status: this.lastStatus,\n };\n }\n async showUpdatePrompt(options = {}) {\n var _a, _b;\n const url = (_a = options.updateUrl) !== null && _a !== void 0 ? _a : (_b = this.lastStatus) === null || _b === void 0 ? void 0 : _b.updateUrl;\n if (!url) {\n return {\n shown: false,\n openedUpdatePage: false,\n };\n }\n const opened = this.openUrl(url);\n return {\n shown: true,\n openedUpdatePage: opened,\n };\n }\n async openUpdatePage(options = {}) {\n var _a, _b, _c;\n const url = (_c = (_a = options.updateUrl) !== null && _a !== void 0 ? _a : (_b = this.lastStatus) === null || _b === void 0 ? void 0 : _b.updateUrl) !== null && _c !== void 0 ? _c : '';\n if (!url) {\n return {\n opened: false,\n url,\n };\n }\n return {\n opened: this.openUrl(url),\n url,\n };\n }\n detectCurrentVersion() {\n const chromiumMatch = navigator.userAgent.match(/Chrome\\/([\\d.]+)/i);\n if (chromiumMatch === null || chromiumMatch === void 0 ? void 0 : chromiumMatch[1]) {\n return chromiumMatch[1];\n }\n const appleWebKitMatch = navigator.userAgent.match(/AppleWebKit\\/([\\d.]+)/i);\n if (appleWebKitMatch === null || appleWebKitMatch === void 0 ? void 0 : appleWebKitMatch[1]) {\n return appleWebKitMatch[1];\n }\n return navigator.userAgent;\n }\n openUrl(url) {\n try {\n window.open(url, '_blank', 'noopener,noreferrer');\n return true;\n }\n catch (_a) {\n return false;\n }\n }\n parseMajorVersion(version) {\n if (!version) {\n return undefined;\n }\n const match = version.match(/(\\d+)/);\n if (!match) {\n return undefined;\n }\n const major = Number.parseInt(match[1], 10);\n return Number.isFinite(major) ? major : undefined;\n }\n compareVersions(left, right) {\n var _a, _b;\n const leftParts = left\n .split(/[^0-9]+/)\n .filter(Boolean)\n .map((part) => Number.parseInt(part, 10));\n const rightParts = right\n .split(/[^0-9]+/)\n .filter(Boolean)\n .map((part) => Number.parseInt(part, 10));\n const maxLength = Math.max(leftParts.length, rightParts.length);\n for (let i = 0; i < maxLength; i += 1) {\n const a = (_a = leftParts[i]) !== null && _a !== void 0 ? _a : 0;\n const b = (_b = rightParts[i]) !== null && _b !== void 0 ? _b : 0;\n if (a > b) {\n return 1;\n }\n if (a < b) {\n return -1;\n }\n }\n return 0;\n }\n normalizePercent(value) {\n if (typeof value !== 'number' || Number.isNaN(value) || !Number.isFinite(value)) {\n return undefined;\n }\n return Math.min(100, Math.max(0, value));\n }\n normalizeVersionShareByMajor(shareByMajor) {\n if (!shareByMajor) {\n return undefined;\n }\n const normalized = {};\n for (const [rawKey, rawShare] of Object.entries(shareByMajor)) {\n const major = this.parseMajorVersion(rawKey);\n const share = this.normalizePercent(rawShare);\n if (typeof major === 'number' && typeof share === 'number') {\n normalized[major] = share;\n }\n }\n return Object.keys(normalized).length > 0 ? normalized : undefined;\n }\n resolveCurrentVersionSharePercent(currentMajorVersion, normalizedShareByMajor) {\n if (typeof currentMajorVersion !== 'number' || !normalizedShareByMajor) {\n return undefined;\n }\n return normalizedShareByMajor[currentMajorVersion];\n }\n}\n//# sourceMappingURL=web.js.map"],"names":["registerPlugin","WebPlugin"],"mappings":";;;;AACK,MAAC,qBAAqB,GAAGA,mBAAc,CAAC,uBAAuB,EAAE;AACtE,IAAI,GAAG,EAAE,MAAM,mDAAe,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,wBAAwB,EAAE,CAAC;AAC5E,CAAC;;ACHD;AACA;AACA;AACA;AACA;AACA;AACA;AACO,MAAM,iCAAiC,GAAG,8BAA8B;AAExE,MAAM,8BAA8B,GAAG;AAC9C,IAAI,GAAG,EAAE,QAAQ;AACjB,IAAI,IAAI,EAAE,QAAQ;AAClB,IAAI,IAAI,EAAE,QAAQ;AAClB,IAAI,IAAI,EAAE,QAAQ;AAClB,IAAI,IAAI,EAAE,QAAQ;AAClB,IAAI,IAAI,EAAE,QAAQ;AAClB,IAAI,IAAI,EAAE,QAAQ;AAClB,IAAI,IAAI,EAAE,QAAQ;AAClB,IAAI,IAAI,EAAE,QAAQ;AAClB,IAAI,IAAI,EAAE,QAAQ;AAClB,IAAI,IAAI,EAAE,QAAQ;AAClB,IAAI,IAAI,EAAE,QAAQ;AAClB,IAAI,IAAI,EAAE,QAAQ;AAClB,IAAI,IAAI,EAAE,QAAQ;AAClB,IAAI,IAAI,EAAE,QAAQ;AAClB,IAAI,IAAI,EAAE,QAAQ;AAClB,IAAI,IAAI,EAAE,QAAQ;AAClB,IAAI,IAAI,EAAE,QAAQ;AAClB,IAAI,IAAI,EAAE,QAAQ;AAClB,IAAI,IAAI,EAAE,QAAQ;AAClB,IAAI,IAAI,EAAE,QAAQ;AAClB,IAAI,IAAI,EAAE,QAAQ;AAClB,IAAI,IAAI,EAAE,QAAQ;AAClB,IAAI,IAAI,EAAE,QAAQ;AAClB,IAAI,IAAI,EAAE,QAAQ;AAClB,IAAI,IAAI,EAAE,QAAQ;AAClB,IAAI,IAAI,EAAE,QAAQ;AAClB,IAAI,IAAI,EAAE,QAAQ;AAClB,IAAI,IAAI,EAAE,OAAO;AACjB,IAAI,IAAI,EAAE,QAAQ;AAClB,IAAI,IAAI,EAAE,QAAQ;AAClB,IAAI,IAAI,EAAE,QAAQ;AAClB,IAAI,IAAI,EAAE,QAAQ;AAClB,IAAI,IAAI,EAAE,QAAQ;AAClB,IAAI,IAAI,EAAE,QAAQ;AAClB,IAAI,IAAI,EAAE,QAAQ;AAClB,IAAI,IAAI,EAAE,QAAQ;AAClB,IAAI,IAAI,EAAE,QAAQ;AAClB,IAAI,IAAI,EAAE,QAAQ;AAClB,IAAI,IAAI,EAAE,QAAQ;AAClB,IAAI,IAAI,EAAE,QAAQ;AAClB,IAAI,IAAI,EAAE,QAAQ;AAClB,IAAI,IAAI,EAAE,QAAQ;AAClB,IAAI,IAAI,EAAE,QAAQ;AAClB,IAAI,IAAI,EAAE,QAAQ;AAClB,IAAI,IAAI,EAAE,QAAQ;AAClB,IAAI,IAAI,EAAE,QAAQ;AAClB,IAAI,IAAI,EAAE,OAAO;AACjB,IAAI,IAAI,EAAE,QAAQ;AAClB,IAAI,KAAK,EAAE,QAAQ;AACnB,IAAI,KAAK,EAAE,QAAQ;AACnB,IAAI,KAAK,EAAE,OAAO;AAClB,IAAI,KAAK,EAAE,QAAQ;AACnB,IAAI,KAAK,EAAE,QAAQ;AACnB,IAAI,KAAK,EAAE,QAAQ;AACnB,IAAI,KAAK,EAAE,QAAQ;AACnB,IAAI,KAAK,EAAE,QAAQ;AACnB,IAAI,KAAK,EAAE,QAAQ;AACnB,IAAI,KAAK,EAAE,QAAQ;AACnB,IAAI,KAAK,EAAE,QAAQ;AACnB,IAAI,KAAK,EAAE,OAAO;AAClB,IAAI,KAAK,EAAE,QAAQ;AACnB,IAAI,KAAK,EAAE,QAAQ;AACnB,IAAI,KAAK,EAAE,OAAO;AAClB,IAAI,KAAK,EAAE,QAAQ;AACnB,IAAI,KAAK,EAAE,QAAQ;AACnB,IAAI,KAAK,EAAE,QAAQ;AACnB,IAAI,KAAK,EAAE,QAAQ;AACnB,IAAI,KAAK,EAAE,OAAO;AAClB,IAAI,KAAK,EAAE,OAAO;AAClB,IAAI,KAAK,EAAE,QAAQ;AACnB,IAAI,KAAK,EAAE,QAAQ;AACnB,IAAI,KAAK,EAAE,QAAQ;AACnB,IAAI,KAAK,EAAE,QAAQ;AACnB,IAAI,KAAK,EAAE,QAAQ;AACnB,IAAI,KAAK,EAAE,QAAQ;AACnB,IAAI,KAAK,EAAE,QAAQ;AACnB,IAAI,KAAK,EAAE,QAAQ;AACnB,IAAI,KAAK,EAAE,OAAO;AAClB,IAAI,KAAK,EAAE,QAAQ;AACnB,IAAI,KAAK,EAAE,QAAQ;AACnB,IAAI,KAAK,EAAE,OAAO;AAClB,IAAI,KAAK,EAAE,QAAQ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"}
1
+ {"version":3,"file":"plugin.cjs.js","sources":["esm/index.js","esm/generated-version-share.js","esm/web.js"],"sourcesContent":["import { registerPlugin } from '@capacitor/core';\nconst WebviewVersionChecker = registerPlugin('WebviewVersionChecker', {\n web: () => import('./web').then((m) => new m.WebviewVersionCheckerWeb()),\n});\nexport * from './definitions';\nexport { WebviewVersionChecker };\n//# sourceMappingURL=index.js.map","/* eslint-disable */\n/**\n * AUTO-GENERATED FILE. DO NOT EDIT.\n * Generated by: scripts/generate-version-share-data.mjs\n * Source: https://raw.githubusercontent.com/Fyrd/caniuse/main/data.json\n * Generated at: 2026-02-22T16:25:02.516Z\n */\nexport const DEFAULT_VERSION_SHARE_DATA_SOURCE = 'generatedVersionShareByMajor';\nexport const DEFAULT_VERSION_SHARE_GENERATED_AT = '2026-02-22T16:25:02.516Z';\nexport const DEFAULT_VERSION_SHARE_BY_MAJOR = {\n \"4\": 0.000092,\n \"39\": 0.004796,\n \"40\": 0.004796,\n \"41\": 0.009592,\n \"42\": 0.004796,\n \"43\": 0.004796,\n \"44\": 0.004796,\n \"45\": 0.009592,\n \"46\": 0.004796,\n \"47\": 0.009592,\n \"48\": 0.014388,\n \"49\": 0.014388,\n \"50\": 0.009592,\n \"51\": 0.009592,\n \"52\": 0.014388,\n \"53\": 0.009592,\n \"54\": 0.004796,\n \"55\": 0.009592,\n \"56\": 0.009592,\n \"57\": 0.009592,\n \"58\": 0.009592,\n \"59\": 0.009592,\n \"60\": 0.014388,\n \"61\": 0.004796,\n \"62\": 0.009592,\n \"63\": 0.009592,\n \"64\": 0.009592,\n \"65\": 0.004796,\n \"66\": 0.02398,\n \"67\": 0.009592,\n \"68\": 0.009592,\n \"69\": 0.033572,\n \"70\": 0.009592,\n \"75\": 0.004796,\n \"77\": 0.004796,\n \"79\": 0.067144,\n \"80\": 0.009592,\n \"81\": 0.009592,\n \"83\": 0.043164,\n \"85\": 0.004796,\n \"86\": 0.009592,\n \"87\": 0.028776,\n \"88\": 0.004796,\n \"91\": 0.019184,\n \"92\": 0.014388,\n \"93\": 0.009592,\n \"97\": 0.009592,\n \"98\": 0.04796,\n \"99\": 0.043164,\n \"101\": 0.014388,\n \"102\": 0.009592,\n \"103\": 0.26378,\n \"104\": 0.230208,\n \"105\": 0.273372,\n \"106\": 0.206228,\n \"107\": 0.230208,\n \"108\": 0.230208,\n \"109\": 0.786544,\n \"110\": 0.235004,\n \"111\": 0.292556,\n \"112\": 2.71454,\n \"113\": 0.004796,\n \"114\": 0.062348,\n \"115\": 0.02398,\n \"116\": 0.446028,\n \"117\": 0.282964,\n \"118\": 0.052756,\n \"119\": 0.038368,\n \"120\": 0.31174,\n \"121\": 0.04796,\n \"122\": 0.091124,\n \"123\": 0.062348,\n \"124\": 0.230208,\n \"125\": 0.244596,\n \"126\": 0.052756,\n \"127\": 0.052756,\n \"128\": 0.076736,\n \"129\": 0.067144,\n \"130\": 0.09592,\n \"131\": 0.709808,\n \"132\": 0.139084,\n \"133\": 0.52756,\n \"134\": 0.067144,\n \"135\": 0.067144,\n \"136\": 0.09592,\n \"137\": 0.062348,\n \"138\": 0.235004,\n \"139\": 3.34761,\n \"140\": 0.177452,\n \"141\": 0.398068,\n \"142\": 1.29972,\n \"143\": 10.4121,\n \"144\": 3.76486,\n \"145\": 41.8835\n};\n//# sourceMappingURL=generated-version-share.js.map","import { WebPlugin } from '@capacitor/core';\nimport { DEFAULT_VERSION_SHARE_BY_MAJOR, DEFAULT_VERSION_SHARE_DATA_SOURCE } from './generated-version-share';\nconst UNKNOWN_REASON = 'Web implementation is a compatibility shim. Native Android/iOS implementations provide full WebView checks.';\nexport class WebviewVersionCheckerWeb extends WebPlugin {\n constructor() {\n super(...arguments);\n this.monitoring = false;\n this.checkOnResume = true;\n this.autoPromptOnOutdated = false;\n this.lastStatus = null;\n }\n async check(options = {}) {\n var _a, _b;\n const currentVersion = this.detectCurrentVersion();\n const currentMajorVersion = this.parseMajorVersion(currentVersion);\n const latestVersion = options.latestVersion;\n const latestMajorVersion = this.parseMajorVersion(latestVersion);\n const minimumDeviceSharePercent = this.normalizePercent((_a = options.minimumDeviceSharePercent) !== null && _a !== void 0 ? _a : 3);\n const normalizedInlineVersionShareByMajor = this.normalizeVersionShareByMajor(options.versionShareByMajor);\n const normalizedGeneratedVersionShareByMajor = this.normalizeVersionShareByMajor(DEFAULT_VERSION_SHARE_BY_MAJOR);\n const normalizedVersionShareByMajor = normalizedInlineVersionShareByMajor !== null && normalizedInlineVersionShareByMajor !== void 0 ? normalizedInlineVersionShareByMajor : normalizedGeneratedVersionShareByMajor;\n const versionShareSource = normalizedInlineVersionShareByMajor\n ? 'versionShareByMajor'\n : DEFAULT_VERSION_SHARE_DATA_SOURCE;\n const currentVersionSharePercent = this.resolveCurrentVersionSharePercent(currentMajorVersion, normalizedVersionShareByMajor);\n let deviceShareError;\n let state = 'unknown';\n let reason = UNKNOWN_REASON;\n if (typeof minimumDeviceSharePercent === 'number') {\n if (typeof currentVersionSharePercent === 'number') {\n state = currentVersionSharePercent >= minimumDeviceSharePercent ? 'latest' : 'outdated';\n reason =\n state === 'latest'\n ? 'Current browser engine major version meets the configured device-share threshold.'\n : 'Current browser engine major version is below the configured device-share threshold.';\n }\n else if (!normalizedVersionShareByMajor && options.versionShareApiUrl) {\n deviceShareError =\n 'Web shim does not fetch version-share API data. Provide versionShareByMajor to evaluate minimumDeviceSharePercent.';\n }\n else if (!normalizedVersionShareByMajor) {\n deviceShareError = 'minimumDeviceSharePercent is set, but no versionShareByMajor dataset was provided.';\n }\n else {\n deviceShareError = 'No device-share entry was found for the current browser engine major version.';\n }\n }\n if (state === 'unknown' && latestVersion && currentVersion) {\n const cmp = this.compareVersions(currentVersion, latestVersion);\n state = cmp >= 0 ? 'latest' : 'outdated';\n reason =\n cmp >= 0\n ? 'Current browser engine is at or above the requested latest version.'\n : 'Current browser engine is below the requested latest version.';\n }\n else if (state === 'unknown' &&\n typeof options.minimumMajorVersion === 'number' &&\n typeof currentMajorVersion === 'number') {\n state = currentMajorVersion >= options.minimumMajorVersion ? 'latest' : 'outdated';\n reason =\n state === 'latest'\n ? 'Current browser engine major version meets the minimum requirement.'\n : 'Current browser engine major version is below the minimum requirement.';\n }\n else if (state === 'unknown' && deviceShareError) {\n reason = deviceShareError;\n }\n const status = {\n platform: 'web',\n state,\n isLatest: state === 'latest',\n checkedAt: new Date().toISOString(),\n reason,\n currentVersion,\n currentMajorVersion,\n latestVersion,\n latestMajorVersion,\n currentVersionSharePercent,\n minimumDeviceSharePercent,\n versionShareSource: normalizedVersionShareByMajor ? versionShareSource : undefined,\n deviceShareError,\n updateUrl: options.updateUrl,\n source: (_b = options.source) !== null && _b !== void 0 ? _b : 'web-shim',\n };\n this.lastStatus = status;\n this.notifyListeners('statusChanged', status);\n if (state === 'latest') {\n this.notifyListeners('webViewLatest', status);\n }\n else if (state === 'outdated') {\n this.notifyListeners('webViewOutdated', status);\n if (options.showPromptOnOutdated || this.autoPromptOnOutdated) {\n await this.showUpdatePrompt({ updateUrl: status.updateUrl });\n }\n }\n return status;\n }\n async startMonitoring(options = {}) {\n var _a, _b, _c, _d;\n this.monitoring = true;\n this.checkOnResume = (_a = options.checkOnResume) !== null && _a !== void 0 ? _a : true;\n this.autoPromptOnOutdated = (_b = options.autoPromptOnOutdated) !== null && _b !== void 0 ? _b : false;\n if ((_c = options.checkOnStart) !== null && _c !== void 0 ? _c : true) {\n await this.check(Object.assign(Object.assign({}, options), { source: (_d = options.source) !== null && _d !== void 0 ? _d : 'startMonitoring' }));\n }\n return {\n monitoring: this.monitoring,\n checkOnResume: this.checkOnResume,\n autoPromptOnOutdated: this.autoPromptOnOutdated,\n };\n }\n async stopMonitoring() {\n this.monitoring = false;\n return {\n monitoring: this.monitoring,\n checkOnResume: this.checkOnResume,\n autoPromptOnOutdated: this.autoPromptOnOutdated,\n };\n }\n async getLastStatus() {\n return {\n status: this.lastStatus,\n };\n }\n async showUpdatePrompt(options = {}) {\n var _a, _b;\n const url = (_a = options.updateUrl) !== null && _a !== void 0 ? _a : (_b = this.lastStatus) === null || _b === void 0 ? void 0 : _b.updateUrl;\n if (!url) {\n return {\n shown: false,\n openedUpdatePage: false,\n };\n }\n const opened = this.openUrl(url);\n return {\n shown: true,\n openedUpdatePage: opened,\n };\n }\n async openUpdatePage(options = {}) {\n var _a, _b, _c;\n const url = (_c = (_a = options.updateUrl) !== null && _a !== void 0 ? _a : (_b = this.lastStatus) === null || _b === void 0 ? void 0 : _b.updateUrl) !== null && _c !== void 0 ? _c : '';\n if (!url) {\n return {\n opened: false,\n url,\n };\n }\n return {\n opened: this.openUrl(url),\n url,\n };\n }\n detectCurrentVersion() {\n const chromiumMatch = navigator.userAgent.match(/Chrome\\/([\\d.]+)/i);\n if (chromiumMatch === null || chromiumMatch === void 0 ? void 0 : chromiumMatch[1]) {\n return chromiumMatch[1];\n }\n const appleWebKitMatch = navigator.userAgent.match(/AppleWebKit\\/([\\d.]+)/i);\n if (appleWebKitMatch === null || appleWebKitMatch === void 0 ? void 0 : appleWebKitMatch[1]) {\n return appleWebKitMatch[1];\n }\n return navigator.userAgent;\n }\n openUrl(url) {\n try {\n window.open(url, '_blank', 'noopener,noreferrer');\n return true;\n }\n catch (_a) {\n return false;\n }\n }\n parseMajorVersion(version) {\n if (!version) {\n return undefined;\n }\n const match = version.match(/(\\d+)/);\n if (!match) {\n return undefined;\n }\n const major = Number.parseInt(match[1], 10);\n return Number.isFinite(major) ? major : undefined;\n }\n compareVersions(left, right) {\n var _a, _b;\n const leftParts = left\n .split(/[^0-9]+/)\n .filter(Boolean)\n .map((part) => Number.parseInt(part, 10));\n const rightParts = right\n .split(/[^0-9]+/)\n .filter(Boolean)\n .map((part) => Number.parseInt(part, 10));\n const maxLength = Math.max(leftParts.length, rightParts.length);\n for (let i = 0; i < maxLength; i += 1) {\n const a = (_a = leftParts[i]) !== null && _a !== void 0 ? _a : 0;\n const b = (_b = rightParts[i]) !== null && _b !== void 0 ? _b : 0;\n if (a > b) {\n return 1;\n }\n if (a < b) {\n return -1;\n }\n }\n return 0;\n }\n normalizePercent(value) {\n if (typeof value !== 'number' || Number.isNaN(value) || !Number.isFinite(value)) {\n return undefined;\n }\n return Math.min(100, Math.max(0, value));\n }\n normalizeVersionShareByMajor(shareByMajor) {\n if (!shareByMajor) {\n return undefined;\n }\n const normalized = {};\n for (const [rawKey, rawShare] of Object.entries(shareByMajor)) {\n const major = this.parseMajorVersion(rawKey);\n const share = this.normalizePercent(rawShare);\n if (typeof major === 'number' && typeof share === 'number') {\n normalized[major] = share;\n }\n }\n return Object.keys(normalized).length > 0 ? normalized : undefined;\n }\n resolveCurrentVersionSharePercent(currentMajorVersion, normalizedShareByMajor) {\n if (typeof currentMajorVersion !== 'number' || !normalizedShareByMajor) {\n return undefined;\n }\n return normalizedShareByMajor[currentMajorVersion];\n }\n}\n//# sourceMappingURL=web.js.map"],"names":["registerPlugin","WebPlugin"],"mappings":";;;;AACK,MAAC,qBAAqB,GAAGA,mBAAc,CAAC,uBAAuB,EAAE;AACtE,IAAI,GAAG,EAAE,MAAM,mDAAe,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,wBAAwB,EAAE,CAAC;AAC5E,CAAC;;ACHD;AACA;AACA;AACA;AACA;AACA;AACA;AACO,MAAM,iCAAiC,GAAG,8BAA8B;AAExE,MAAM,8BAA8B,GAAG;AAC9C,IAAI,GAAG,EAAE,QAAQ;AACjB,IAAI,IAAI,EAAE,QAAQ;AAClB,IAAI,IAAI,EAAE,QAAQ;AAClB,IAAI,IAAI,EAAE,QAAQ;AAClB,IAAI,IAAI,EAAE,QAAQ;AAClB,IAAI,IAAI,EAAE,QAAQ;AAClB,IAAI,IAAI,EAAE,QAAQ;AAClB,IAAI,IAAI,EAAE,QAAQ;AAClB,IAAI,IAAI,EAAE,QAAQ;AAClB,IAAI,IAAI,EAAE,QAAQ;AAClB,IAAI,IAAI,EAAE,QAAQ;AAClB,IAAI,IAAI,EAAE,QAAQ;AAClB,IAAI,IAAI,EAAE,QAAQ;AAClB,IAAI,IAAI,EAAE,QAAQ;AAClB,IAAI,IAAI,EAAE,QAAQ;AAClB,IAAI,IAAI,EAAE,QAAQ;AAClB,IAAI,IAAI,EAAE,QAAQ;AAClB,IAAI,IAAI,EAAE,QAAQ;AAClB,IAAI,IAAI,EAAE,QAAQ;AAClB,IAAI,IAAI,EAAE,QAAQ;AAClB,IAAI,IAAI,EAAE,QAAQ;AAClB,IAAI,IAAI,EAAE,QAAQ;AAClB,IAAI,IAAI,EAAE,QAAQ;AAClB,IAAI,IAAI,EAAE,QAAQ;AAClB,IAAI,IAAI,EAAE,QAAQ;AAClB,IAAI,IAAI,EAAE,QAAQ;AAClB,IAAI,IAAI,EAAE,QAAQ;AAClB,IAAI,IAAI,EAAE,QAAQ;AAClB,IAAI,IAAI,EAAE,OAAO;AACjB,IAAI,IAAI,EAAE,QAAQ;AAClB,IAAI,IAAI,EAAE,QAAQ;AAClB,IAAI,IAAI,EAAE,QAAQ;AAClB,IAAI,IAAI,EAAE,QAAQ;AAClB,IAAI,IAAI,EAAE,QAAQ;AAClB,IAAI,IAAI,EAAE,QAAQ;AAClB,IAAI,IAAI,EAAE,QAAQ;AAClB,IAAI,IAAI,EAAE,QAAQ;AAClB,IAAI,IAAI,EAAE,QAAQ;AAClB,IAAI,IAAI,EAAE,QAAQ;AAClB,IAAI,IAAI,EAAE,QAAQ;AAClB,IAAI,IAAI,EAAE,QAAQ;AAClB,IAAI,IAAI,EAAE,QAAQ;AAClB,IAAI,IAAI,EAAE,QAAQ;AAClB,IAAI,IAAI,EAAE,QAAQ;AAClB,IAAI,IAAI,EAAE,QAAQ;AAClB,IAAI,IAAI,EAAE,QAAQ;AAClB,IAAI,IAAI,EAAE,QAAQ;AAClB,IAAI,IAAI,EAAE,OAAO;AACjB,IAAI,IAAI,EAAE,QAAQ;AAClB,IAAI,KAAK,EAAE,QAAQ;AACnB,IAAI,KAAK,EAAE,QAAQ;AACnB,IAAI,KAAK,EAAE,OAAO;AAClB,IAAI,KAAK,EAAE,QAAQ;AACnB,IAAI,KAAK,EAAE,QAAQ;AACnB,IAAI,KAAK,EAAE,QAAQ;AACnB,IAAI,KAAK,EAAE,QAAQ;AACnB,IAAI,KAAK,EAAE,QAAQ;AACnB,IAAI,KAAK,EAAE,QAAQ;AACnB,IAAI,KAAK,EAAE,QAAQ;AACnB,IAAI,KAAK,EAAE,QAAQ;AACnB,IAAI,KAAK,EAAE,OAAO;AAClB,IAAI,KAAK,EAAE,QAAQ;AACnB,IAAI,KAAK,EAAE,QAAQ;AACnB,IAAI,KAAK,EAAE,OAAO;AAClB,IAAI,KAAK,EAAE,QAAQ;AACnB,IAAI,KAAK,EAAE,QAAQ;AACnB,IAAI,KAAK,EAAE,QAAQ;AACnB,IAAI,KAAK,EAAE,QAAQ;AACnB,IAAI,KAAK,EAAE,OAAO;AAClB,IAAI,KAAK,EAAE,OAAO;AAClB,IAAI,KAAK,EAAE,QAAQ;AACnB,IAAI,KAAK,EAAE,QAAQ;AACnB,IAAI,KAAK,EAAE,QAAQ;AACnB,IAAI,KAAK,EAAE,QAAQ;AACnB,IAAI,KAAK,EAAE,QAAQ;AACnB,IAAI,KAAK,EAAE,QAAQ;AACnB,IAAI,KAAK,EAAE,QAAQ;AACnB,IAAI,KAAK,EAAE,QAAQ;AACnB,IAAI,KAAK,EAAE,OAAO;AAClB,IAAI,KAAK,EAAE,QAAQ;AACnB,IAAI,KAAK,EAAE,QAAQ;AACnB,IAAI,KAAK,EAAE,OAAO;AAClB,IAAI,KAAK,EAAE,QAAQ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"}
package/dist/plugin.js CHANGED
@@ -10,7 +10,7 @@ var capacitorWebviewVersionChecker = (function (exports, core) {
10
10
  * AUTO-GENERATED FILE. DO NOT EDIT.
11
11
  * Generated by: scripts/generate-version-share-data.mjs
12
12
  * Source: https://raw.githubusercontent.com/Fyrd/caniuse/main/data.json
13
- * Generated at: 2026-02-20T04:04:07.658Z
13
+ * Generated at: 2026-02-22T16:25:02.516Z
14
14
  */
15
15
  const DEFAULT_VERSION_SHARE_DATA_SOURCE = 'generatedVersionShareByMajor';
16
16
  const DEFAULT_VERSION_SHARE_BY_MAJOR = {
@@ -106,8 +106,8 @@ var capacitorWebviewVersionChecker = (function (exports, core) {
106
106
  "141": 0.398068,
107
107
  "142": 1.29972,
108
108
  "143": 10.4121,
109
- "144": 41.8835,
110
- "145": 0.019184
109
+ "144": 3.76486,
110
+ "145": 41.8835
111
111
  };
112
112
 
113
113
  const UNKNOWN_REASON = 'Web implementation is a compatibility shim. Native Android/iOS implementations provide full WebView checks.';
@@ -1 +1 @@
1
- {"version":3,"file":"plugin.js","sources":["esm/index.js","esm/generated-version-share.js","esm/web.js"],"sourcesContent":["import { registerPlugin } from '@capacitor/core';\nconst WebviewVersionChecker = registerPlugin('WebviewVersionChecker', {\n web: () => import('./web').then((m) => new m.WebviewVersionCheckerWeb()),\n});\nexport * from './definitions';\nexport { WebviewVersionChecker };\n//# sourceMappingURL=index.js.map","/* eslint-disable */\n/**\n * AUTO-GENERATED FILE. DO NOT EDIT.\n * Generated by: scripts/generate-version-share-data.mjs\n * Source: https://raw.githubusercontent.com/Fyrd/caniuse/main/data.json\n * Generated at: 2026-02-20T04:04:07.658Z\n */\nexport const DEFAULT_VERSION_SHARE_DATA_SOURCE = 'generatedVersionShareByMajor';\nexport const DEFAULT_VERSION_SHARE_GENERATED_AT = '2026-02-20T04:04:07.658Z';\nexport const DEFAULT_VERSION_SHARE_BY_MAJOR = {\n \"4\": 0.000092,\n \"39\": 0.004796,\n \"40\": 0.004796,\n \"41\": 0.009592,\n \"42\": 0.004796,\n \"43\": 0.004796,\n \"44\": 0.004796,\n \"45\": 0.009592,\n \"46\": 0.004796,\n \"47\": 0.009592,\n \"48\": 0.014388,\n \"49\": 0.014388,\n \"50\": 0.009592,\n \"51\": 0.009592,\n \"52\": 0.014388,\n \"53\": 0.009592,\n \"54\": 0.004796,\n \"55\": 0.009592,\n \"56\": 0.009592,\n \"57\": 0.009592,\n \"58\": 0.009592,\n \"59\": 0.009592,\n \"60\": 0.014388,\n \"61\": 0.004796,\n \"62\": 0.009592,\n \"63\": 0.009592,\n \"64\": 0.009592,\n \"65\": 0.004796,\n \"66\": 0.02398,\n \"67\": 0.009592,\n \"68\": 0.009592,\n \"69\": 0.033572,\n \"70\": 0.009592,\n \"75\": 0.004796,\n \"77\": 0.004796,\n \"79\": 0.067144,\n \"80\": 0.009592,\n \"81\": 0.009592,\n \"83\": 0.043164,\n \"85\": 0.004796,\n \"86\": 0.009592,\n \"87\": 0.028776,\n \"88\": 0.004796,\n \"91\": 0.019184,\n \"92\": 0.014388,\n \"93\": 0.009592,\n \"97\": 0.009592,\n \"98\": 0.04796,\n \"99\": 0.043164,\n \"101\": 0.014388,\n \"102\": 0.009592,\n \"103\": 0.26378,\n \"104\": 0.230208,\n \"105\": 0.273372,\n \"106\": 0.206228,\n \"107\": 0.230208,\n \"108\": 0.230208,\n \"109\": 0.786544,\n \"110\": 0.235004,\n \"111\": 0.292556,\n \"112\": 2.71454,\n \"113\": 0.004796,\n \"114\": 0.062348,\n \"115\": 0.02398,\n \"116\": 0.446028,\n \"117\": 0.282964,\n \"118\": 0.052756,\n \"119\": 0.038368,\n \"120\": 0.31174,\n \"121\": 0.04796,\n \"122\": 0.091124,\n \"123\": 0.062348,\n \"124\": 0.230208,\n \"125\": 0.244596,\n \"126\": 0.052756,\n \"127\": 0.052756,\n \"128\": 0.076736,\n \"129\": 0.067144,\n \"130\": 0.09592,\n \"131\": 0.709808,\n \"132\": 0.139084,\n \"133\": 0.52756,\n \"134\": 0.067144,\n \"135\": 0.067144,\n \"136\": 0.09592,\n \"137\": 0.062348,\n \"138\": 0.235004,\n \"139\": 3.34761,\n \"140\": 0.177452,\n \"141\": 0.398068,\n \"142\": 1.29972,\n \"143\": 10.4121,\n \"144\": 41.8835,\n \"145\": 0.019184\n};\n//# sourceMappingURL=generated-version-share.js.map","import { WebPlugin } from '@capacitor/core';\nimport { DEFAULT_VERSION_SHARE_BY_MAJOR, DEFAULT_VERSION_SHARE_DATA_SOURCE } from './generated-version-share';\nconst UNKNOWN_REASON = 'Web implementation is a compatibility shim. Native Android/iOS implementations provide full WebView checks.';\nexport class WebviewVersionCheckerWeb extends WebPlugin {\n constructor() {\n super(...arguments);\n this.monitoring = false;\n this.checkOnResume = true;\n this.autoPromptOnOutdated = false;\n this.lastStatus = null;\n }\n async check(options = {}) {\n var _a, _b;\n const currentVersion = this.detectCurrentVersion();\n const currentMajorVersion = this.parseMajorVersion(currentVersion);\n const latestVersion = options.latestVersion;\n const latestMajorVersion = this.parseMajorVersion(latestVersion);\n const minimumDeviceSharePercent = this.normalizePercent((_a = options.minimumDeviceSharePercent) !== null && _a !== void 0 ? _a : 3);\n const normalizedInlineVersionShareByMajor = this.normalizeVersionShareByMajor(options.versionShareByMajor);\n const normalizedGeneratedVersionShareByMajor = this.normalizeVersionShareByMajor(DEFAULT_VERSION_SHARE_BY_MAJOR);\n const normalizedVersionShareByMajor = normalizedInlineVersionShareByMajor !== null && normalizedInlineVersionShareByMajor !== void 0 ? normalizedInlineVersionShareByMajor : normalizedGeneratedVersionShareByMajor;\n const versionShareSource = normalizedInlineVersionShareByMajor\n ? 'versionShareByMajor'\n : DEFAULT_VERSION_SHARE_DATA_SOURCE;\n const currentVersionSharePercent = this.resolveCurrentVersionSharePercent(currentMajorVersion, normalizedVersionShareByMajor);\n let deviceShareError;\n let state = 'unknown';\n let reason = UNKNOWN_REASON;\n if (typeof minimumDeviceSharePercent === 'number') {\n if (typeof currentVersionSharePercent === 'number') {\n state = currentVersionSharePercent >= minimumDeviceSharePercent ? 'latest' : 'outdated';\n reason =\n state === 'latest'\n ? 'Current browser engine major version meets the configured device-share threshold.'\n : 'Current browser engine major version is below the configured device-share threshold.';\n }\n else if (!normalizedVersionShareByMajor && options.versionShareApiUrl) {\n deviceShareError =\n 'Web shim does not fetch version-share API data. Provide versionShareByMajor to evaluate minimumDeviceSharePercent.';\n }\n else if (!normalizedVersionShareByMajor) {\n deviceShareError = 'minimumDeviceSharePercent is set, but no versionShareByMajor dataset was provided.';\n }\n else {\n deviceShareError = 'No device-share entry was found for the current browser engine major version.';\n }\n }\n if (state === 'unknown' && latestVersion && currentVersion) {\n const cmp = this.compareVersions(currentVersion, latestVersion);\n state = cmp >= 0 ? 'latest' : 'outdated';\n reason =\n cmp >= 0\n ? 'Current browser engine is at or above the requested latest version.'\n : 'Current browser engine is below the requested latest version.';\n }\n else if (state === 'unknown' &&\n typeof options.minimumMajorVersion === 'number' &&\n typeof currentMajorVersion === 'number') {\n state = currentMajorVersion >= options.minimumMajorVersion ? 'latest' : 'outdated';\n reason =\n state === 'latest'\n ? 'Current browser engine major version meets the minimum requirement.'\n : 'Current browser engine major version is below the minimum requirement.';\n }\n else if (state === 'unknown' && deviceShareError) {\n reason = deviceShareError;\n }\n const status = {\n platform: 'web',\n state,\n isLatest: state === 'latest',\n checkedAt: new Date().toISOString(),\n reason,\n currentVersion,\n currentMajorVersion,\n latestVersion,\n latestMajorVersion,\n currentVersionSharePercent,\n minimumDeviceSharePercent,\n versionShareSource: normalizedVersionShareByMajor ? versionShareSource : undefined,\n deviceShareError,\n updateUrl: options.updateUrl,\n source: (_b = options.source) !== null && _b !== void 0 ? _b : 'web-shim',\n };\n this.lastStatus = status;\n this.notifyListeners('statusChanged', status);\n if (state === 'latest') {\n this.notifyListeners('webViewLatest', status);\n }\n else if (state === 'outdated') {\n this.notifyListeners('webViewOutdated', status);\n if (options.showPromptOnOutdated || this.autoPromptOnOutdated) {\n await this.showUpdatePrompt({ updateUrl: status.updateUrl });\n }\n }\n return status;\n }\n async startMonitoring(options = {}) {\n var _a, _b, _c, _d;\n this.monitoring = true;\n this.checkOnResume = (_a = options.checkOnResume) !== null && _a !== void 0 ? _a : true;\n this.autoPromptOnOutdated = (_b = options.autoPromptOnOutdated) !== null && _b !== void 0 ? _b : false;\n if ((_c = options.checkOnStart) !== null && _c !== void 0 ? _c : true) {\n await this.check(Object.assign(Object.assign({}, options), { source: (_d = options.source) !== null && _d !== void 0 ? _d : 'startMonitoring' }));\n }\n return {\n monitoring: this.monitoring,\n checkOnResume: this.checkOnResume,\n autoPromptOnOutdated: this.autoPromptOnOutdated,\n };\n }\n async stopMonitoring() {\n this.monitoring = false;\n return {\n monitoring: this.monitoring,\n checkOnResume: this.checkOnResume,\n autoPromptOnOutdated: this.autoPromptOnOutdated,\n };\n }\n async getLastStatus() {\n return {\n status: this.lastStatus,\n };\n }\n async showUpdatePrompt(options = {}) {\n var _a, _b;\n const url = (_a = options.updateUrl) !== null && _a !== void 0 ? _a : (_b = this.lastStatus) === null || _b === void 0 ? void 0 : _b.updateUrl;\n if (!url) {\n return {\n shown: false,\n openedUpdatePage: false,\n };\n }\n const opened = this.openUrl(url);\n return {\n shown: true,\n openedUpdatePage: opened,\n };\n }\n async openUpdatePage(options = {}) {\n var _a, _b, _c;\n const url = (_c = (_a = options.updateUrl) !== null && _a !== void 0 ? _a : (_b = this.lastStatus) === null || _b === void 0 ? void 0 : _b.updateUrl) !== null && _c !== void 0 ? _c : '';\n if (!url) {\n return {\n opened: false,\n url,\n };\n }\n return {\n opened: this.openUrl(url),\n url,\n };\n }\n detectCurrentVersion() {\n const chromiumMatch = navigator.userAgent.match(/Chrome\\/([\\d.]+)/i);\n if (chromiumMatch === null || chromiumMatch === void 0 ? void 0 : chromiumMatch[1]) {\n return chromiumMatch[1];\n }\n const appleWebKitMatch = navigator.userAgent.match(/AppleWebKit\\/([\\d.]+)/i);\n if (appleWebKitMatch === null || appleWebKitMatch === void 0 ? void 0 : appleWebKitMatch[1]) {\n return appleWebKitMatch[1];\n }\n return navigator.userAgent;\n }\n openUrl(url) {\n try {\n window.open(url, '_blank', 'noopener,noreferrer');\n return true;\n }\n catch (_a) {\n return false;\n }\n }\n parseMajorVersion(version) {\n if (!version) {\n return undefined;\n }\n const match = version.match(/(\\d+)/);\n if (!match) {\n return undefined;\n }\n const major = Number.parseInt(match[1], 10);\n return Number.isFinite(major) ? major : undefined;\n }\n compareVersions(left, right) {\n var _a, _b;\n const leftParts = left\n .split(/[^0-9]+/)\n .filter(Boolean)\n .map((part) => Number.parseInt(part, 10));\n const rightParts = right\n .split(/[^0-9]+/)\n .filter(Boolean)\n .map((part) => Number.parseInt(part, 10));\n const maxLength = Math.max(leftParts.length, rightParts.length);\n for (let i = 0; i < maxLength; i += 1) {\n const a = (_a = leftParts[i]) !== null && _a !== void 0 ? _a : 0;\n const b = (_b = rightParts[i]) !== null && _b !== void 0 ? _b : 0;\n if (a > b) {\n return 1;\n }\n if (a < b) {\n return -1;\n }\n }\n return 0;\n }\n normalizePercent(value) {\n if (typeof value !== 'number' || Number.isNaN(value) || !Number.isFinite(value)) {\n return undefined;\n }\n return Math.min(100, Math.max(0, value));\n }\n normalizeVersionShareByMajor(shareByMajor) {\n if (!shareByMajor) {\n return undefined;\n }\n const normalized = {};\n for (const [rawKey, rawShare] of Object.entries(shareByMajor)) {\n const major = this.parseMajorVersion(rawKey);\n const share = this.normalizePercent(rawShare);\n if (typeof major === 'number' && typeof share === 'number') {\n normalized[major] = share;\n }\n }\n return Object.keys(normalized).length > 0 ? normalized : undefined;\n }\n resolveCurrentVersionSharePercent(currentMajorVersion, normalizedShareByMajor) {\n if (typeof currentMajorVersion !== 'number' || !normalizedShareByMajor) {\n return undefined;\n }\n return normalizedShareByMajor[currentMajorVersion];\n }\n}\n//# sourceMappingURL=web.js.map"],"names":["registerPlugin","WebPlugin"],"mappings":";;;AACK,UAAC,qBAAqB,GAAGA,mBAAc,CAAC,uBAAuB,EAAE;IACtE,IAAI,GAAG,EAAE,MAAM,mDAAe,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,wBAAwB,EAAE,CAAC;IAC5E,CAAC;;ICHD;IACA;IACA;IACA;IACA;IACA;IACA;IACO,MAAM,iCAAiC,GAAG,8BAA8B;IAExE,MAAM,8BAA8B,GAAG;IAC9C,IAAI,GAAG,EAAE,QAAQ;IACjB,IAAI,IAAI,EAAE,QAAQ;IAClB,IAAI,IAAI,EAAE,QAAQ;IAClB,IAAI,IAAI,EAAE,QAAQ;IAClB,IAAI,IAAI,EAAE,QAAQ;IAClB,IAAI,IAAI,EAAE,QAAQ;IAClB,IAAI,IAAI,EAAE,QAAQ;IAClB,IAAI,IAAI,EAAE,QAAQ;IAClB,IAAI,IAAI,EAAE,QAAQ;IAClB,IAAI,IAAI,EAAE,QAAQ;IAClB,IAAI,IAAI,EAAE,QAAQ;IAClB,IAAI,IAAI,EAAE,QAAQ;IAClB,IAAI,IAAI,EAAE,QAAQ;IAClB,IAAI,IAAI,EAAE,QAAQ;IAClB,IAAI,IAAI,EAAE,QAAQ;IAClB,IAAI,IAAI,EAAE,QAAQ;IAClB,IAAI,IAAI,EAAE,QAAQ;IAClB,IAAI,IAAI,EAAE,QAAQ;IAClB,IAAI,IAAI,EAAE,QAAQ;IAClB,IAAI,IAAI,EAAE,QAAQ;IAClB,IAAI,IAAI,EAAE,QAAQ;IAClB,IAAI,IAAI,EAAE,QAAQ;IAClB,IAAI,IAAI,EAAE,QAAQ;IAClB,IAAI,IAAI,EAAE,QAAQ;IAClB,IAAI,IAAI,EAAE,QAAQ;IAClB,IAAI,IAAI,EAAE,QAAQ;IAClB,IAAI,IAAI,EAAE,QAAQ;IAClB,IAAI,IAAI,EAAE,QAAQ;IAClB,IAAI,IAAI,EAAE,OAAO;IACjB,IAAI,IAAI,EAAE,QAAQ;IAClB,IAAI,IAAI,EAAE,QAAQ;IAClB,IAAI,IAAI,EAAE,QAAQ;IAClB,IAAI,IAAI,EAAE,QAAQ;IAClB,IAAI,IAAI,EAAE,QAAQ;IAClB,IAAI,IAAI,EAAE,QAAQ;IAClB,IAAI,IAAI,EAAE,QAAQ;IAClB,IAAI,IAAI,EAAE,QAAQ;IAClB,IAAI,IAAI,EAAE,QAAQ;IAClB,IAAI,IAAI,EAAE,QAAQ;IAClB,IAAI,IAAI,EAAE,QAAQ;IAClB,IAAI,IAAI,EAAE,QAAQ;IAClB,IAAI,IAAI,EAAE,QAAQ;IAClB,IAAI,IAAI,EAAE,QAAQ;IAClB,IAAI,IAAI,EAAE,QAAQ;IAClB,IAAI,IAAI,EAAE,QAAQ;IAClB,IAAI,IAAI,EAAE,QAAQ;IAClB,IAAI,IAAI,EAAE,QAAQ;IAClB,IAAI,IAAI,EAAE,OAAO;IACjB,IAAI,IAAI,EAAE,QAAQ;IAClB,IAAI,KAAK,EAAE,QAAQ;IACnB,IAAI,KAAK,EAAE,QAAQ;IACnB,IAAI,KAAK,EAAE,OAAO;IAClB,IAAI,KAAK,EAAE,QAAQ;IACnB,IAAI,KAAK,EAAE,QAAQ;IACnB,IAAI,KAAK,EAAE,QAAQ;IACnB,IAAI,KAAK,EAAE,QAAQ;IACnB,IAAI,KAAK,EAAE,QAAQ;IACnB,IAAI,KAAK,EAAE,QAAQ;IACnB,IAAI,KAAK,EAAE,QAAQ;IACnB,IAAI,KAAK,EAAE,QAAQ;IACnB,IAAI,KAAK,EAAE,OAAO;IAClB,IAAI,KAAK,EAAE,QAAQ;IACnB,IAAI,KAAK,EAAE,QAAQ;IACnB,IAAI,KAAK,EAAE,OAAO;IAClB,IAAI,KAAK,EAAE,QAAQ;IACnB,IAAI,KAAK,EAAE,QAAQ;IACnB,IAAI,KAAK,EAAE,QAAQ;IACnB,IAAI,KAAK,EAAE,QAAQ;IACnB,IAAI,KAAK,EAAE,OAAO;IAClB,IAAI,KAAK,EAAE,OAAO;IAClB,IAAI,KAAK,EAAE,QAAQ;IACnB,IAAI,KAAK,EAAE,QAAQ;IACnB,IAAI,KAAK,EAAE,QAAQ;IACnB,IAAI,KAAK,EAAE,QAAQ;IACnB,IAAI,KAAK,EAAE,QAAQ;IACnB,IAAI,KAAK,EAAE,QAAQ;IACnB,IAAI,KAAK,EAAE,QAAQ;IACnB,IAAI,KAAK,EAAE,QAAQ;IACnB,IAAI,KAAK,EAAE,OAAO;IAClB,IAAI,KAAK,EAAE,QAAQ;IACnB,IAAI,KAAK,EAAE,QAAQ;IACnB,IAAI,KAAK,EAAE,OAAO;IAClB,IAAI,KAAK,EAAE,QAAQ;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"}
1
+ {"version":3,"file":"plugin.js","sources":["esm/index.js","esm/generated-version-share.js","esm/web.js"],"sourcesContent":["import { registerPlugin } from '@capacitor/core';\nconst WebviewVersionChecker = registerPlugin('WebviewVersionChecker', {\n web: () => import('./web').then((m) => new m.WebviewVersionCheckerWeb()),\n});\nexport * from './definitions';\nexport { WebviewVersionChecker };\n//# sourceMappingURL=index.js.map","/* eslint-disable */\n/**\n * AUTO-GENERATED FILE. DO NOT EDIT.\n * Generated by: scripts/generate-version-share-data.mjs\n * Source: https://raw.githubusercontent.com/Fyrd/caniuse/main/data.json\n * Generated at: 2026-02-22T16:25:02.516Z\n */\nexport const DEFAULT_VERSION_SHARE_DATA_SOURCE = 'generatedVersionShareByMajor';\nexport const DEFAULT_VERSION_SHARE_GENERATED_AT = '2026-02-22T16:25:02.516Z';\nexport const DEFAULT_VERSION_SHARE_BY_MAJOR = {\n \"4\": 0.000092,\n \"39\": 0.004796,\n \"40\": 0.004796,\n \"41\": 0.009592,\n \"42\": 0.004796,\n \"43\": 0.004796,\n \"44\": 0.004796,\n \"45\": 0.009592,\n \"46\": 0.004796,\n \"47\": 0.009592,\n \"48\": 0.014388,\n \"49\": 0.014388,\n \"50\": 0.009592,\n \"51\": 0.009592,\n \"52\": 0.014388,\n \"53\": 0.009592,\n \"54\": 0.004796,\n \"55\": 0.009592,\n \"56\": 0.009592,\n \"57\": 0.009592,\n \"58\": 0.009592,\n \"59\": 0.009592,\n \"60\": 0.014388,\n \"61\": 0.004796,\n \"62\": 0.009592,\n \"63\": 0.009592,\n \"64\": 0.009592,\n \"65\": 0.004796,\n \"66\": 0.02398,\n \"67\": 0.009592,\n \"68\": 0.009592,\n \"69\": 0.033572,\n \"70\": 0.009592,\n \"75\": 0.004796,\n \"77\": 0.004796,\n \"79\": 0.067144,\n \"80\": 0.009592,\n \"81\": 0.009592,\n \"83\": 0.043164,\n \"85\": 0.004796,\n \"86\": 0.009592,\n \"87\": 0.028776,\n \"88\": 0.004796,\n \"91\": 0.019184,\n \"92\": 0.014388,\n \"93\": 0.009592,\n \"97\": 0.009592,\n \"98\": 0.04796,\n \"99\": 0.043164,\n \"101\": 0.014388,\n \"102\": 0.009592,\n \"103\": 0.26378,\n \"104\": 0.230208,\n \"105\": 0.273372,\n \"106\": 0.206228,\n \"107\": 0.230208,\n \"108\": 0.230208,\n \"109\": 0.786544,\n \"110\": 0.235004,\n \"111\": 0.292556,\n \"112\": 2.71454,\n \"113\": 0.004796,\n \"114\": 0.062348,\n \"115\": 0.02398,\n \"116\": 0.446028,\n \"117\": 0.282964,\n \"118\": 0.052756,\n \"119\": 0.038368,\n \"120\": 0.31174,\n \"121\": 0.04796,\n \"122\": 0.091124,\n \"123\": 0.062348,\n \"124\": 0.230208,\n \"125\": 0.244596,\n \"126\": 0.052756,\n \"127\": 0.052756,\n \"128\": 0.076736,\n \"129\": 0.067144,\n \"130\": 0.09592,\n \"131\": 0.709808,\n \"132\": 0.139084,\n \"133\": 0.52756,\n \"134\": 0.067144,\n \"135\": 0.067144,\n \"136\": 0.09592,\n \"137\": 0.062348,\n \"138\": 0.235004,\n \"139\": 3.34761,\n \"140\": 0.177452,\n \"141\": 0.398068,\n \"142\": 1.29972,\n \"143\": 10.4121,\n \"144\": 3.76486,\n \"145\": 41.8835\n};\n//# sourceMappingURL=generated-version-share.js.map","import { WebPlugin } from '@capacitor/core';\nimport { DEFAULT_VERSION_SHARE_BY_MAJOR, DEFAULT_VERSION_SHARE_DATA_SOURCE } from './generated-version-share';\nconst UNKNOWN_REASON = 'Web implementation is a compatibility shim. Native Android/iOS implementations provide full WebView checks.';\nexport class WebviewVersionCheckerWeb extends WebPlugin {\n constructor() {\n super(...arguments);\n this.monitoring = false;\n this.checkOnResume = true;\n this.autoPromptOnOutdated = false;\n this.lastStatus = null;\n }\n async check(options = {}) {\n var _a, _b;\n const currentVersion = this.detectCurrentVersion();\n const currentMajorVersion = this.parseMajorVersion(currentVersion);\n const latestVersion = options.latestVersion;\n const latestMajorVersion = this.parseMajorVersion(latestVersion);\n const minimumDeviceSharePercent = this.normalizePercent((_a = options.minimumDeviceSharePercent) !== null && _a !== void 0 ? _a : 3);\n const normalizedInlineVersionShareByMajor = this.normalizeVersionShareByMajor(options.versionShareByMajor);\n const normalizedGeneratedVersionShareByMajor = this.normalizeVersionShareByMajor(DEFAULT_VERSION_SHARE_BY_MAJOR);\n const normalizedVersionShareByMajor = normalizedInlineVersionShareByMajor !== null && normalizedInlineVersionShareByMajor !== void 0 ? normalizedInlineVersionShareByMajor : normalizedGeneratedVersionShareByMajor;\n const versionShareSource = normalizedInlineVersionShareByMajor\n ? 'versionShareByMajor'\n : DEFAULT_VERSION_SHARE_DATA_SOURCE;\n const currentVersionSharePercent = this.resolveCurrentVersionSharePercent(currentMajorVersion, normalizedVersionShareByMajor);\n let deviceShareError;\n let state = 'unknown';\n let reason = UNKNOWN_REASON;\n if (typeof minimumDeviceSharePercent === 'number') {\n if (typeof currentVersionSharePercent === 'number') {\n state = currentVersionSharePercent >= minimumDeviceSharePercent ? 'latest' : 'outdated';\n reason =\n state === 'latest'\n ? 'Current browser engine major version meets the configured device-share threshold.'\n : 'Current browser engine major version is below the configured device-share threshold.';\n }\n else if (!normalizedVersionShareByMajor && options.versionShareApiUrl) {\n deviceShareError =\n 'Web shim does not fetch version-share API data. Provide versionShareByMajor to evaluate minimumDeviceSharePercent.';\n }\n else if (!normalizedVersionShareByMajor) {\n deviceShareError = 'minimumDeviceSharePercent is set, but no versionShareByMajor dataset was provided.';\n }\n else {\n deviceShareError = 'No device-share entry was found for the current browser engine major version.';\n }\n }\n if (state === 'unknown' && latestVersion && currentVersion) {\n const cmp = this.compareVersions(currentVersion, latestVersion);\n state = cmp >= 0 ? 'latest' : 'outdated';\n reason =\n cmp >= 0\n ? 'Current browser engine is at or above the requested latest version.'\n : 'Current browser engine is below the requested latest version.';\n }\n else if (state === 'unknown' &&\n typeof options.minimumMajorVersion === 'number' &&\n typeof currentMajorVersion === 'number') {\n state = currentMajorVersion >= options.minimumMajorVersion ? 'latest' : 'outdated';\n reason =\n state === 'latest'\n ? 'Current browser engine major version meets the minimum requirement.'\n : 'Current browser engine major version is below the minimum requirement.';\n }\n else if (state === 'unknown' && deviceShareError) {\n reason = deviceShareError;\n }\n const status = {\n platform: 'web',\n state,\n isLatest: state === 'latest',\n checkedAt: new Date().toISOString(),\n reason,\n currentVersion,\n currentMajorVersion,\n latestVersion,\n latestMajorVersion,\n currentVersionSharePercent,\n minimumDeviceSharePercent,\n versionShareSource: normalizedVersionShareByMajor ? versionShareSource : undefined,\n deviceShareError,\n updateUrl: options.updateUrl,\n source: (_b = options.source) !== null && _b !== void 0 ? _b : 'web-shim',\n };\n this.lastStatus = status;\n this.notifyListeners('statusChanged', status);\n if (state === 'latest') {\n this.notifyListeners('webViewLatest', status);\n }\n else if (state === 'outdated') {\n this.notifyListeners('webViewOutdated', status);\n if (options.showPromptOnOutdated || this.autoPromptOnOutdated) {\n await this.showUpdatePrompt({ updateUrl: status.updateUrl });\n }\n }\n return status;\n }\n async startMonitoring(options = {}) {\n var _a, _b, _c, _d;\n this.monitoring = true;\n this.checkOnResume = (_a = options.checkOnResume) !== null && _a !== void 0 ? _a : true;\n this.autoPromptOnOutdated = (_b = options.autoPromptOnOutdated) !== null && _b !== void 0 ? _b : false;\n if ((_c = options.checkOnStart) !== null && _c !== void 0 ? _c : true) {\n await this.check(Object.assign(Object.assign({}, options), { source: (_d = options.source) !== null && _d !== void 0 ? _d : 'startMonitoring' }));\n }\n return {\n monitoring: this.monitoring,\n checkOnResume: this.checkOnResume,\n autoPromptOnOutdated: this.autoPromptOnOutdated,\n };\n }\n async stopMonitoring() {\n this.monitoring = false;\n return {\n monitoring: this.monitoring,\n checkOnResume: this.checkOnResume,\n autoPromptOnOutdated: this.autoPromptOnOutdated,\n };\n }\n async getLastStatus() {\n return {\n status: this.lastStatus,\n };\n }\n async showUpdatePrompt(options = {}) {\n var _a, _b;\n const url = (_a = options.updateUrl) !== null && _a !== void 0 ? _a : (_b = this.lastStatus) === null || _b === void 0 ? void 0 : _b.updateUrl;\n if (!url) {\n return {\n shown: false,\n openedUpdatePage: false,\n };\n }\n const opened = this.openUrl(url);\n return {\n shown: true,\n openedUpdatePage: opened,\n };\n }\n async openUpdatePage(options = {}) {\n var _a, _b, _c;\n const url = (_c = (_a = options.updateUrl) !== null && _a !== void 0 ? _a : (_b = this.lastStatus) === null || _b === void 0 ? void 0 : _b.updateUrl) !== null && _c !== void 0 ? _c : '';\n if (!url) {\n return {\n opened: false,\n url,\n };\n }\n return {\n opened: this.openUrl(url),\n url,\n };\n }\n detectCurrentVersion() {\n const chromiumMatch = navigator.userAgent.match(/Chrome\\/([\\d.]+)/i);\n if (chromiumMatch === null || chromiumMatch === void 0 ? void 0 : chromiumMatch[1]) {\n return chromiumMatch[1];\n }\n const appleWebKitMatch = navigator.userAgent.match(/AppleWebKit\\/([\\d.]+)/i);\n if (appleWebKitMatch === null || appleWebKitMatch === void 0 ? void 0 : appleWebKitMatch[1]) {\n return appleWebKitMatch[1];\n }\n return navigator.userAgent;\n }\n openUrl(url) {\n try {\n window.open(url, '_blank', 'noopener,noreferrer');\n return true;\n }\n catch (_a) {\n return false;\n }\n }\n parseMajorVersion(version) {\n if (!version) {\n return undefined;\n }\n const match = version.match(/(\\d+)/);\n if (!match) {\n return undefined;\n }\n const major = Number.parseInt(match[1], 10);\n return Number.isFinite(major) ? major : undefined;\n }\n compareVersions(left, right) {\n var _a, _b;\n const leftParts = left\n .split(/[^0-9]+/)\n .filter(Boolean)\n .map((part) => Number.parseInt(part, 10));\n const rightParts = right\n .split(/[^0-9]+/)\n .filter(Boolean)\n .map((part) => Number.parseInt(part, 10));\n const maxLength = Math.max(leftParts.length, rightParts.length);\n for (let i = 0; i < maxLength; i += 1) {\n const a = (_a = leftParts[i]) !== null && _a !== void 0 ? _a : 0;\n const b = (_b = rightParts[i]) !== null && _b !== void 0 ? _b : 0;\n if (a > b) {\n return 1;\n }\n if (a < b) {\n return -1;\n }\n }\n return 0;\n }\n normalizePercent(value) {\n if (typeof value !== 'number' || Number.isNaN(value) || !Number.isFinite(value)) {\n return undefined;\n }\n return Math.min(100, Math.max(0, value));\n }\n normalizeVersionShareByMajor(shareByMajor) {\n if (!shareByMajor) {\n return undefined;\n }\n const normalized = {};\n for (const [rawKey, rawShare] of Object.entries(shareByMajor)) {\n const major = this.parseMajorVersion(rawKey);\n const share = this.normalizePercent(rawShare);\n if (typeof major === 'number' && typeof share === 'number') {\n normalized[major] = share;\n }\n }\n return Object.keys(normalized).length > 0 ? normalized : undefined;\n }\n resolveCurrentVersionSharePercent(currentMajorVersion, normalizedShareByMajor) {\n if (typeof currentMajorVersion !== 'number' || !normalizedShareByMajor) {\n return undefined;\n }\n return normalizedShareByMajor[currentMajorVersion];\n }\n}\n//# sourceMappingURL=web.js.map"],"names":["registerPlugin","WebPlugin"],"mappings":";;;AACK,UAAC,qBAAqB,GAAGA,mBAAc,CAAC,uBAAuB,EAAE;IACtE,IAAI,GAAG,EAAE,MAAM,mDAAe,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,wBAAwB,EAAE,CAAC;IAC5E,CAAC;;ICHD;IACA;IACA;IACA;IACA;IACA;IACA;IACO,MAAM,iCAAiC,GAAG,8BAA8B;IAExE,MAAM,8BAA8B,GAAG;IAC9C,IAAI,GAAG,EAAE,QAAQ;IACjB,IAAI,IAAI,EAAE,QAAQ;IAClB,IAAI,IAAI,EAAE,QAAQ;IAClB,IAAI,IAAI,EAAE,QAAQ;IAClB,IAAI,IAAI,EAAE,QAAQ;IAClB,IAAI,IAAI,EAAE,QAAQ;IAClB,IAAI,IAAI,EAAE,QAAQ;IAClB,IAAI,IAAI,EAAE,QAAQ;IAClB,IAAI,IAAI,EAAE,QAAQ;IAClB,IAAI,IAAI,EAAE,QAAQ;IAClB,IAAI,IAAI,EAAE,QAAQ;IAClB,IAAI,IAAI,EAAE,QAAQ;IAClB,IAAI,IAAI,EAAE,QAAQ;IAClB,IAAI,IAAI,EAAE,QAAQ;IAClB,IAAI,IAAI,EAAE,QAAQ;IAClB,IAAI,IAAI,EAAE,QAAQ;IAClB,IAAI,IAAI,EAAE,QAAQ;IAClB,IAAI,IAAI,EAAE,QAAQ;IAClB,IAAI,IAAI,EAAE,QAAQ;IAClB,IAAI,IAAI,EAAE,QAAQ;IAClB,IAAI,IAAI,EAAE,QAAQ;IAClB,IAAI,IAAI,EAAE,QAAQ;IAClB,IAAI,IAAI,EAAE,QAAQ;IAClB,IAAI,IAAI,EAAE,QAAQ;IAClB,IAAI,IAAI,EAAE,QAAQ;IAClB,IAAI,IAAI,EAAE,QAAQ;IAClB,IAAI,IAAI,EAAE,QAAQ;IAClB,IAAI,IAAI,EAAE,QAAQ;IAClB,IAAI,IAAI,EAAE,OAAO;IACjB,IAAI,IAAI,EAAE,QAAQ;IAClB,IAAI,IAAI,EAAE,QAAQ;IAClB,IAAI,IAAI,EAAE,QAAQ;IAClB,IAAI,IAAI,EAAE,QAAQ;IAClB,IAAI,IAAI,EAAE,QAAQ;IAClB,IAAI,IAAI,EAAE,QAAQ;IAClB,IAAI,IAAI,EAAE,QAAQ;IAClB,IAAI,IAAI,EAAE,QAAQ;IAClB,IAAI,IAAI,EAAE,QAAQ;IAClB,IAAI,IAAI,EAAE,QAAQ;IAClB,IAAI,IAAI,EAAE,QAAQ;IAClB,IAAI,IAAI,EAAE,QAAQ;IAClB,IAAI,IAAI,EAAE,QAAQ;IAClB,IAAI,IAAI,EAAE,QAAQ;IAClB,IAAI,IAAI,EAAE,QAAQ;IAClB,IAAI,IAAI,EAAE,QAAQ;IAClB,IAAI,IAAI,EAAE,QAAQ;IAClB,IAAI,IAAI,EAAE,QAAQ;IAClB,IAAI,IAAI,EAAE,OAAO;IACjB,IAAI,IAAI,EAAE,QAAQ;IAClB,IAAI,KAAK,EAAE,QAAQ;IACnB,IAAI,KAAK,EAAE,QAAQ;IACnB,IAAI,KAAK,EAAE,OAAO;IAClB,IAAI,KAAK,EAAE,QAAQ;IACnB,IAAI,KAAK,EAAE,QAAQ;IACnB,IAAI,KAAK,EAAE,QAAQ;IACnB,IAAI,KAAK,EAAE,QAAQ;IACnB,IAAI,KAAK,EAAE,QAAQ;IACnB,IAAI,KAAK,EAAE,QAAQ;IACnB,IAAI,KAAK,EAAE,QAAQ;IACnB,IAAI,KAAK,EAAE,QAAQ;IACnB,IAAI,KAAK,EAAE,OAAO;IAClB,IAAI,KAAK,EAAE,QAAQ;IACnB,IAAI,KAAK,EAAE,QAAQ;IACnB,IAAI,KAAK,EAAE,OAAO;IAClB,IAAI,KAAK,EAAE,QAAQ;IACnB,IAAI,KAAK,EAAE,QAAQ;IACnB,IAAI,KAAK,EAAE,QAAQ;IACnB,IAAI,KAAK,EAAE,QAAQ;IACnB,IAAI,KAAK,EAAE,OAAO;IAClB,IAAI,KAAK,EAAE,OAAO;IAClB,IAAI,KAAK,EAAE,QAAQ;IACnB,IAAI,KAAK,EAAE,QAAQ;IACnB,IAAI,KAAK,EAAE,QAAQ;IACnB,IAAI,KAAK,EAAE,QAAQ;IACnB,IAAI,KAAK,EAAE,QAAQ;IACnB,IAAI,KAAK,EAAE,QAAQ;IACnB,IAAI,KAAK,EAAE,QAAQ;IACnB,IAAI,KAAK,EAAE,QAAQ;IACnB,IAAI,KAAK,EAAE,OAAO;IAClB,IAAI,KAAK,EAAE,QAAQ;IACnB,IAAI,KAAK,EAAE,QAAQ;IACnB,IAAI,KAAK,EAAE,OAAO;IAClB,IAAI,KAAK,EAAE,QAAQ;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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@capgo/capacitor-webview-version-checker",
3
- "version": "8.1.1",
3
+ "version": "8.2.0",
4
4
  "description": "Capacitor plugin for checking outdated Android WebView engines, emitting status events, and presenting native update prompts.",
5
5
  "main": "dist/plugin.cjs.js",
6
6
  "module": "dist/esm/index.js",