native-fn 1.0.74 → 1.0.76

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (66) hide show
  1. package/dist/index.d.ts +5 -5
  2. package/dist/native.cjs +1 -1
  3. package/dist/native.min.cjs +1 -1
  4. package/dist/native.min.mjs +1 -1
  5. package/dist/native.mjs +1 -1
  6. package/dist/native.umd.js +1 -1
  7. package/dist/native.umd.min.js +1 -1
  8. package/dist/plugin/app/index.cjs +355 -176
  9. package/dist/plugin/app/index.min.cjs +1 -1
  10. package/dist/plugin/app/index.min.mjs +1 -1
  11. package/dist/plugin/app/index.mjs +355 -176
  12. package/dist/plugin/app/index.umd.js +355 -176
  13. package/dist/plugin/app/index.umd.min.js +1 -1
  14. package/dist/plugin/app/src/plugin/platform/cores/index.d.ts +12 -0
  15. package/dist/plugin/app/src/plugin/platform/types/platform.d.ts +16 -6
  16. package/dist/plugin/app/src/types/native.d.ts +5 -5
  17. package/dist/plugin/appearance/index.cjs +344 -165
  18. package/dist/plugin/appearance/index.min.cjs +1 -1
  19. package/dist/plugin/appearance/index.min.mjs +1 -1
  20. package/dist/plugin/appearance/index.mjs +344 -165
  21. package/dist/plugin/appearance/index.umd.js +344 -165
  22. package/dist/plugin/appearance/index.umd.min.js +1 -1
  23. package/dist/plugin/appearance/src/plugin/platform/cores/index.d.ts +12 -0
  24. package/dist/plugin/appearance/src/plugin/platform/types/platform.d.ts +16 -6
  25. package/dist/plugin/appearance/src/types/native.d.ts +5 -5
  26. package/dist/plugin/clipboard/index.cjs +339 -160
  27. package/dist/plugin/clipboard/index.min.cjs +1 -1
  28. package/dist/plugin/clipboard/index.min.mjs +1 -1
  29. package/dist/plugin/clipboard/index.mjs +339 -160
  30. package/dist/plugin/clipboard/index.umd.js +339 -160
  31. package/dist/plugin/clipboard/index.umd.min.js +1 -1
  32. package/dist/plugin/clipboard/src/plugin/platform/cores/index.d.ts +12 -0
  33. package/dist/plugin/clipboard/src/plugin/platform/types/platform.d.ts +16 -6
  34. package/dist/plugin/clipboard/src/types/native.d.ts +5 -5
  35. package/dist/plugin/fullscreen/index.cjs +348 -169
  36. package/dist/plugin/fullscreen/index.min.cjs +1 -1
  37. package/dist/plugin/fullscreen/index.min.mjs +1 -1
  38. package/dist/plugin/fullscreen/index.mjs +348 -169
  39. package/dist/plugin/fullscreen/index.umd.js +348 -169
  40. package/dist/plugin/fullscreen/index.umd.min.js +1 -1
  41. package/dist/plugin/fullscreen/src/plugin/platform/cores/index.d.ts +12 -0
  42. package/dist/plugin/fullscreen/src/plugin/platform/types/platform.d.ts +16 -6
  43. package/dist/plugin/fullscreen/src/types/native.d.ts +5 -5
  44. package/dist/plugin/platform/index.cjs +339 -160
  45. package/dist/plugin/platform/index.d.ts +17 -7
  46. package/dist/plugin/platform/index.min.cjs +1 -1
  47. package/dist/plugin/platform/index.min.mjs +1 -1
  48. package/dist/plugin/platform/index.mjs +339 -160
  49. package/dist/plugin/platform/index.umd.js +339 -160
  50. package/dist/plugin/platform/index.umd.min.js +1 -1
  51. package/dist/plugin/platform/src/plugin/platform/cores/index.d.ts +12 -0
  52. package/dist/plugin/platform/src/plugin/platform/types/platform.d.ts +16 -6
  53. package/dist/plugin/platform/src/types/native.d.ts +5 -5
  54. package/dist/plugin/theme/index.cjs +339 -160
  55. package/dist/plugin/theme/index.min.cjs +1 -1
  56. package/dist/plugin/theme/index.min.mjs +1 -1
  57. package/dist/plugin/theme/index.mjs +339 -160
  58. package/dist/plugin/theme/index.umd.js +339 -160
  59. package/dist/plugin/theme/index.umd.min.js +1 -1
  60. package/dist/plugin/theme/src/plugin/platform/cores/index.d.ts +12 -0
  61. package/dist/plugin/theme/src/plugin/platform/types/platform.d.ts +16 -6
  62. package/dist/plugin/theme/src/types/native.d.ts +5 -5
  63. package/dist/src/plugin/platform/cores/index.d.ts +12 -0
  64. package/dist/src/plugin/platform/types/platform.d.ts +16 -6
  65. package/dist/src/types/native.d.ts +5 -5
  66. package/package.json +8 -1
@@ -100,21 +100,43 @@ var CrossPlatformFramework;
100
100
  var USER_AGENT = typeof globalThis.navigator !== 'undefined' && typeof globalThis.navigator.userAgent === 'string' ? globalThis.navigator.userAgent : '';
101
101
 
102
102
  var Platform = {
103
- device: Devices.Unknown,
104
- os: OS.Unknown,
105
- engine: Engines.Unknown,
106
- browser: Browsers.Unknown,
103
+ os: { name: OS.Unknown, version: '' },
104
+ engine: { name: Engines.Unknown, version: '' },
105
+ browser: { name: Browsers.Unknown, version: '' },
107
106
  crossPlatformFramework: CrossPlatformFramework.Unknown,
108
- osVersion: '',
109
- engineVersion: '',
110
- browserVersion: '',
111
- renderer: getRenderer(),
112
107
  userAgent: USER_AGENT,
113
- isNode: typeof globalThis.process !== 'undefined' && typeof globalThis.process.versions !== 'undefined' && globalThis.process.versions.node !== undefined,
114
- isMobile: false,
115
- isDesktop: false,
116
- isStandalone: false,
117
- isWebview: /; ?wv|applewebkit(?!.*safari)/i.test(USER_AGENT),
108
+ get network() {
109
+ return getNetwork();
110
+ },
111
+ get device() {
112
+ if (this.os.name === OS.iOS || this.os.name === OS.Android)
113
+ return Devices.Mobile;
114
+ if (this.os.name === OS.Windows || this.os.name === OS.MacOS)
115
+ return Devices.Desktop;
116
+ return Devices.Unknown;
117
+ },
118
+ get renderer() {
119
+ return getRenderer();
120
+ },
121
+ get isMobile() {
122
+ return this.device === Devices.Mobile;
123
+ },
124
+ get isDesktop() {
125
+ return this.device === Devices.Desktop;
126
+ },
127
+ get isWebview() {
128
+ return /; ?wv|applewebkit(?!.*safari)/i.test(this.userAgent);
129
+ },
130
+ get isNode() {
131
+ return typeof globalThis.process !== 'undefined' && typeof globalThis.process.versions !== 'undefined' && globalThis.process.versions.node !== undefined;
132
+ },
133
+ get isStandalone() {
134
+ if (this.os.name === OS.iOS)
135
+ return 'standalone' in globalThis.navigator && !!globalThis.navigator.standalone;
136
+ if (!('matchMedia' in globalThis))
137
+ return false;
138
+ return globalThis.matchMedia('(display-mode: standalone)').matches;
139
+ },
118
140
  };
119
141
  var OS_RESOLVER_MAP = [
120
142
  [/windows nt (6\.[23]); arm/i, OS.Windows, resolveWindowsVersion],
@@ -174,6 +196,14 @@ var BROWSER_RESOLVER_MAP = [
174
196
  [/mobile vr; rv:([\w.]+)\).+firefox/i, Browsers.Firefox],
175
197
  [/firefox\/([\w.]+)/i, Browsers.Firefox],
176
198
  ];
199
+ var HIGH_ENTROPY_BRAND_NAME_MAP = {
200
+ 'Google Chrome': 'Chrome',
201
+ 'Microsoft Edge': 'Edge',
202
+ 'Microsoft Edge WebView2': 'Edge WebView2',
203
+ 'Android WebView': 'Chrome WebView',
204
+ 'HeadlessChrome': 'Chrome Headless',
205
+ 'OperaMobile': 'Opera Mobi',
206
+ };
177
207
  function resolveWindowsVersion(string) {
178
208
  if (string === undefined)
179
209
  return '';
@@ -348,6 +378,33 @@ function normalizeBrand(entry) {
348
378
  return { brand: entry, version: '' };
349
379
  return { brand: entry.brand, version: entry.version };
350
380
  }
381
+ function getSemanticVersion(string) {
382
+ var parts = string.split('.');
383
+ return {
384
+ major: parseInt(parts[0] || '0'),
385
+ minor: parseInt(parts[1] || '0'),
386
+ build: parseInt(parts[2] || '0')
387
+ };
388
+ }
389
+ function parseOSFromCordova() {
390
+ Platform.crossPlatformFramework = CrossPlatformFramework.Cordova;
391
+ if (typeof globalThis.device !== 'undefined') {
392
+ switch (globalThis.device.platform) {
393
+ case 'Android':
394
+ Platform.os = {
395
+ name: OS.Android,
396
+ version: globalThis.device.version,
397
+ };
398
+ break;
399
+ case 'iOS':
400
+ Platform.os = {
401
+ name: OS.iOS,
402
+ version: globalThis.device.version,
403
+ };
404
+ break;
405
+ }
406
+ }
407
+ }
351
408
  function getRenderer() {
352
409
  if (typeof globalThis.document === 'undefined')
353
410
  return '';
@@ -368,171 +425,293 @@ function getRenderer() {
368
425
  return '';
369
426
  }
370
427
  }
371
- function getIsStandalone(os) {
372
- if (!('matchMedia' in globalThis))
373
- return false;
374
- if (os === OS.iOS)
375
- return 'standalone' in navigator && !!navigator.standalone;
376
- return globalThis.matchMedia('(display-mode: standalone)').matches;
377
- }
378
- function getSemanticVersion(string) {
379
- var parts = string.split('.');
380
- return {
381
- major: parseInt(parts[0] || '0'),
382
- minor: parseInt(parts[1] || '0'),
383
- build: parseInt(parts[2] || '0')
428
+ function getNetwork() {
429
+ var network = {
430
+ isOnline: null,
431
+ effectiveType: null,
432
+ type: null,
433
+ downlink: null,
434
+ rtt: null,
435
+ saveData: null,
384
436
  };
385
- }
386
- if ((typeof globalThis.process !== 'undefined' && typeof globalThis.process.versions !== 'undefined' && globalThis.process.versions.electron !== undefined) || (/ electron\//i.test(USER_AGENT))) {
387
- Platform.crossPlatformFramework = CrossPlatformFramework.Electron;
388
- }
389
- if (typeof globalThis.navigator !== 'undefined' && globalThis.navigator.product === 'ReactNative') {
390
- Platform.crossPlatformFramework = CrossPlatformFramework.ReactNative;
391
- }
392
- for (var i = 0; i < OS_RESOLVER_MAP.length; i++) {
393
- var map = OS_RESOLVER_MAP[i];
394
- var regexp = map[0];
395
- var os = map[1];
396
- var resolver = map[2];
397
- var matched = Platform.userAgent.match(regexp);
398
- if (matched !== null) {
399
- Platform.os = os;
400
- Platform.osVersion = resolveVersion(matched[1], resolver);
401
- break;
402
- }
403
- }
404
- if (Platform.os === OS.iOS && compareVersion(Platform.osVersion, '18.6') === 0) {
405
- var version = /\) Version\/([\d.]+)/.exec(Platform.userAgent);
406
- if (version !== null && parseInt(version[1].substring(0, 2), 10) >= 26)
407
- Platform.osVersion = version[1];
408
- }
409
- for (var i = 0; i < ENGINE_RESOLVER_MAP.length; i++) {
410
- var map = ENGINE_RESOLVER_MAP[i];
411
- var regexp = map[0];
412
- var engine = map[1];
413
- var resolver = map[2];
414
- var matched = Platform.userAgent.match(regexp);
415
- if (matched !== null) {
416
- Platform.engine = engine;
417
- Platform.engineVersion = resolveVersion(matched[1], resolver);
418
- break;
437
+ if (typeof globalThis.navigator !== 'undefined') {
438
+ if (typeof globalThis.navigator.onLine !== 'undefined')
439
+ network.isOnline = globalThis.navigator.onLine;
440
+ var connection = globalThis.navigator.connection || globalThis.navigator.mozConnection || globalThis.navigator.webkitConnection;
441
+ if (typeof connection !== 'undefined') {
442
+ if (typeof connection.effectiveType !== 'undefined')
443
+ network.effectiveType = connection.effectiveType;
444
+ if (typeof connection.type !== 'undefined')
445
+ network.type = connection.type;
446
+ if (typeof connection.downlink !== 'undefined')
447
+ network.downlink = connection.downlink;
448
+ if (typeof connection.rtt !== 'undefined')
449
+ network.rtt = connection.rtt;
450
+ if (typeof connection.saveData !== 'undefined')
451
+ network.saveData = connection.saveData;
452
+ }
419
453
  }
420
- }
421
- for (var i = 0; i < BROWSER_RESOLVER_MAP.length; i++) {
422
- var map = BROWSER_RESOLVER_MAP[i];
423
- var regexp = map[0];
424
- var browser = map[1];
425
- var resolver = map[2];
426
- var matched = Platform.userAgent.match(regexp);
427
- if (matched !== null) {
428
- Platform.browser = browser;
429
- Platform.browserVersion = resolveVersion(matched[1], resolver);
430
- break;
454
+ if (Platform.isNode) {
455
+ try {
456
+ var os = require('os');
457
+ var networkInterfaces = os.networkInterfaces();
458
+ var networkInterfaceNames = Object.keys(networkInterfaces);
459
+ for (var i = 0; i < networkInterfaceNames.length; i++) {
460
+ var name_1 = networkInterfaceNames[i];
461
+ var networkInterface = networkInterfaces[name_1];
462
+ for (var j = 0; j < networkInterface.length; j++) {
463
+ var address = networkInterface[j];
464
+ if (!address.internal && address.family === 'IPv4')
465
+ network.isOnline = true;
466
+ }
467
+ if (network.isOnline)
468
+ break;
469
+ }
470
+ }
471
+ catch (_) {
472
+ }
473
+ try {
474
+ var childProcess = require('child_process');
475
+ if (Platform.os.name === OS.Windows) {
476
+ try {
477
+ var output = childProcess.execSync('netsh wlan show interfaces', { encoding: 'utf8', timeout: 5000 });
478
+ if (output.includes('State') && output.includes('connected'))
479
+ network.type = 'wifi';
480
+ }
481
+ catch (_) {
482
+ }
483
+ if (network.type === null) {
484
+ try {
485
+ var output = childProcess.execSync('ipconfig', { encoding: 'utf8', timeout: 5000 });
486
+ if (output.includes('Ethernet adapter'))
487
+ network.type = 'ethernet';
488
+ }
489
+ catch (_) {
490
+ }
491
+ }
492
+ if (network.type === null)
493
+ network.type = 'other';
494
+ }
495
+ else if (Platform.os.name === OS.MacOS) {
496
+ try {
497
+ var output = childProcess.execSync('networksetup -listallhardwareports', { encoding: 'utf8', timeout: 5000 });
498
+ var activeInterface = childProcess.execSync('route -n get default | grep interface', { encoding: 'utf8', timeout: 5000 });
499
+ if (activeInterface.includes('en0') && output.includes('Wi-Fi'))
500
+ network.type = 'wifi';
501
+ else if (activeInterface.includes('en') || output.includes('Ethernet'))
502
+ network.type = 'ethernet';
503
+ else
504
+ network.type = 'other';
505
+ }
506
+ catch (_) {
507
+ network.type = 'other';
508
+ }
509
+ }
510
+ }
511
+ catch (_) {
512
+ }
431
513
  }
432
- }
433
- if (Platform.crossPlatformFramework === CrossPlatformFramework.ReactNative) {
434
- try {
435
- var reactNative = require('react-native');
436
- var platform = reactNative.Platform;
437
- var os = platform.OS;
438
- var release = '' + platform.Version;
439
- var version = getSemanticVersion(release);
440
- switch (os) {
441
- case 'android':
442
- Platform.os = OS.Android;
443
- Platform.osVersion = resolveSemanticAndroidVersion(version, release);
444
- break;
445
- case 'ios':
446
- Platform.os = OS.iOS;
447
- Platform.osVersion = release;
448
- break;
449
- case 'windows':
450
- Platform.os = OS.Windows;
451
- Platform.osVersion = resolveSemanticWindowsVersion(version, release);
452
- break;
453
- case 'macos':
454
- Platform.os = OS.MacOS;
455
- Platform.osVersion = release;
456
- break;
514
+ return network;
515
+ }
516
+ function canUseHighEntropyValues(navigator) {
517
+ return typeof globalThis.navigator !== 'undefined' && typeof navigator.userAgentData !== 'undefined' && typeof navigator.userAgentData.getHighEntropyValues !== 'undefined';
518
+ }
519
+ function init() {
520
+ if ((typeof globalThis.process !== 'undefined' && typeof globalThis.process.versions !== 'undefined' && globalThis.process.versions.electron !== undefined) || (/ electron\//i.test(USER_AGENT)))
521
+ Platform.crossPlatformFramework = CrossPlatformFramework.Electron;
522
+ if (typeof globalThis.navigator !== 'undefined' && globalThis.navigator.product === 'ReactNative')
523
+ Platform.crossPlatformFramework = CrossPlatformFramework.ReactNative;
524
+ for (var i = 0; i < OS_RESOLVER_MAP.length; i++) {
525
+ var map = OS_RESOLVER_MAP[i];
526
+ var regexp = map[0];
527
+ var os = map[1];
528
+ var resolver = map[2];
529
+ var matched = Platform.userAgent.match(regexp);
530
+ if (matched !== null) {
531
+ Platform.os = {
532
+ name: os,
533
+ version: resolveVersion(matched[1], resolver),
534
+ };
535
+ break;
457
536
  }
458
537
  }
459
- catch (_) {
538
+ if (Platform.os.name === OS.iOS && compareVersion(Platform.os.version, '18.6') === 0) {
539
+ var version = /\) Version\/([\d.]+)/.exec(Platform.userAgent);
540
+ if (version !== null && parseInt(version[1].substring(0, 2), 10) >= 26)
541
+ Platform.os.version = version[1];
460
542
  }
461
- }
462
- if (Platform.isNode) {
463
- try {
464
- var os = require('os');
465
- var platform = os.platform();
466
- var release = os.release();
467
- var version = getSemanticVersion(release);
468
- switch (platform) {
469
- case 'win32':
470
- Platform.os = OS.Windows;
471
- Platform.osVersion = resolveSemanticWindowsVersion(version, release);
472
- break;
473
- case 'darwin':
474
- Platform.os = OS.MacOS;
475
- Platform.osVersion = resolveSemanticDarwinVersion(version, release);
476
- break;
477
- case 'android':
478
- Platform.os = OS.Android;
479
- Platform.osVersion = release;
480
- break;
481
- case 'linux':
482
- if (/android/i.test(release)) {
483
- Platform.os = OS.Android;
484
- Platform.osVersion = release;
485
- }
486
- break;
543
+ for (var i = 0; i < ENGINE_RESOLVER_MAP.length; i++) {
544
+ var map = ENGINE_RESOLVER_MAP[i];
545
+ var regexp = map[0];
546
+ var engine = map[1];
547
+ var resolver = map[2];
548
+ var matched = Platform.userAgent.match(regexp);
549
+ if (matched !== null) {
550
+ Platform.engine = {
551
+ name: engine,
552
+ version: resolveVersion(matched[1], resolver),
553
+ };
554
+ break;
487
555
  }
488
556
  }
489
- catch (_) {
557
+ for (var i = 0; i < BROWSER_RESOLVER_MAP.length; i++) {
558
+ var map = BROWSER_RESOLVER_MAP[i];
559
+ var regexp = map[0];
560
+ var browser = map[1];
561
+ var resolver = map[2];
562
+ var matched = Platform.userAgent.match(regexp);
563
+ if (matched !== null) {
564
+ Platform.browser = {
565
+ name: browser,
566
+ version: resolveVersion(matched[1], resolver),
567
+ };
568
+ break;
569
+ }
490
570
  }
491
- }
492
- if (typeof globalThis.document !== 'undefined') {
493
- globalThis.document.addEventListener("deviceready", function () {
494
- Platform.crossPlatformFramework = CrossPlatformFramework.Cordova;
495
- if (Platform.os === OS.Unknown && typeof globalThis.device !== 'undefined') {
496
- switch (globalThis.device.platform) {
497
- case 'Android':
498
- Platform.os = OS.Android;
571
+ if (Platform.crossPlatformFramework === CrossPlatformFramework.ReactNative) {
572
+ try {
573
+ var reactNative = require('react-native');
574
+ var platform = reactNative.Platform;
575
+ var os = platform.OS;
576
+ var release = '' + platform.Version;
577
+ var version = getSemanticVersion(release);
578
+ switch (os) {
579
+ case 'android':
580
+ Platform.os = {
581
+ name: OS.Android,
582
+ version: resolveSemanticAndroidVersion(version, release),
583
+ };
584
+ break;
585
+ case 'ios':
586
+ Platform.os = {
587
+ name: OS.iOS,
588
+ version: release,
589
+ };
590
+ break;
591
+ case 'windows':
592
+ Platform.os = {
593
+ name: OS.Windows,
594
+ version: resolveSemanticWindowsVersion(version, release),
595
+ };
499
596
  break;
500
- case 'iOS':
501
- Platform.os = OS.iOS;
597
+ case 'macos':
598
+ Platform.os = {
599
+ name: OS.MacOS,
600
+ version: release,
601
+ };
502
602
  break;
503
603
  }
504
- Platform.osVersion = globalThis.device.version;
505
604
  }
506
- }, false);
507
- }
508
- if (navigator.userAgentData !== undefined && navigator.userAgentData.getHighEntropyValues !== undefined) {
509
- navigator
510
- .userAgentData
511
- .getHighEntropyValues(['brands', 'fullVersionList', 'mobile', 'model', 'platform', 'platformVersion', 'architecture', 'formFactors', 'bitness', 'uaFullVersion', 'wow64'])
512
- .then(function (result) {
513
- var brands = result.fullVersionList || result.brands || [];
514
- var platformVersion = result.platformVersion;
515
- for (var i = 0; i < brands.length; i++) {
516
- var brand = normalizeBrand(brands[i]);
517
- var brandName = brand.brand;
518
- var brandVersion = brand.version;
519
- if (/not.a.brand/i.test(brandName))
520
- continue;
521
- if (brandName === "Chromium")
522
- Platform.engineVersion = brandVersion;
605
+ catch (_) {
523
606
  }
524
- if (typeof platformVersion === 'string') {
525
- if (Platform.os === OS.Windows && parseInt(platformVersion.replace(/[^\d.]/g, '').split('.')[0], 10) >= 13)
526
- Platform.osVersion = '11';
527
- else
528
- Platform.osVersion = platformVersion;
607
+ finally {
529
608
  }
530
- });
609
+ }
610
+ if (Platform.isNode) {
611
+ try {
612
+ var os = require('os');
613
+ var platform = os.platform();
614
+ var release = os.release();
615
+ var version = getSemanticVersion(release);
616
+ switch (platform) {
617
+ case 'win32':
618
+ Platform.os = {
619
+ name: OS.Windows,
620
+ version: resolveSemanticWindowsVersion(version, release),
621
+ };
622
+ break;
623
+ case 'darwin':
624
+ Platform.os = {
625
+ name: OS.MacOS,
626
+ version: resolveSemanticDarwinVersion(version, release),
627
+ };
628
+ break;
629
+ case 'android':
630
+ Platform.os = {
631
+ name: OS.Android,
632
+ version: release,
633
+ };
634
+ break;
635
+ case 'linux':
636
+ if (/android/i.test(release)) {
637
+ Platform.os = {
638
+ name: OS.Android,
639
+ version: release,
640
+ };
641
+ }
642
+ break;
643
+ }
644
+ }
645
+ catch (_) {
646
+ }
647
+ finally {
648
+ }
649
+ }
650
+ if (typeof globalThis.document !== 'undefined') {
651
+ if (typeof globalThis.device !== 'undefined') {
652
+ parseOSFromCordova();
653
+ }
654
+ else {
655
+ globalThis.document.addEventListener("deviceready", parseOSFromCordova, false);
656
+ }
657
+ }
658
+ if (canUseHighEntropyValues(globalThis.navigator)) {
659
+ globalThis
660
+ .navigator
661
+ .userAgentData
662
+ .getHighEntropyValues(['brands', 'fullVersionList', 'mobile', 'model', 'platform', 'platformVersion', 'architecture', 'formFactors', 'bitness', 'uaFullVersion', 'wow64'])
663
+ .then(function (result) {
664
+ var brands = result.fullVersionList || result.brands || [];
665
+ var platformVersion = result.platformVersion;
666
+ var platform = result.platform;
667
+ var browserName = Platform.browser.name;
668
+ var prevBrandName = null;
669
+ for (var i = 0; i < brands.length; i++) {
670
+ var brand = normalizeBrand(brands[i]);
671
+ var brandVersion = brand.version;
672
+ var brandName = brand.brand;
673
+ if (/not.a.brand/i.test(brandName))
674
+ continue;
675
+ if (prevBrandName === null || (/Chrom/.test(prevBrandName) && brandName !== 'Chromium') || (prevBrandName === 'Edge' && /WebView2/.test(brandName))) {
676
+ brandName = HIGH_ENTROPY_BRAND_NAME_MAP[brandName] || brandName;
677
+ prevBrandName = browserName;
678
+ if (prevBrandName === null || /Chrom/.test(prevBrandName) || !/Chrom/.test(brandName)) {
679
+ browserName = brandName;
680
+ if (browserName === 'Chrome' || browserName === 'Chrome WebView' || browserName === 'Chrome Headless')
681
+ Platform.browser.name = Browsers.Chrome;
682
+ else if (browserName === 'Edge' || browserName === 'Edge WebView2')
683
+ Platform.browser.name = Browsers.Edge;
684
+ else if (browserName === 'Opera Mobi')
685
+ Platform.browser.name = Browsers.Opera;
686
+ Platform.browser.version = brandVersion;
687
+ }
688
+ prevBrandName = brandName;
689
+ }
690
+ if (brandName === 'Chromium')
691
+ Platform.engine.version = brandVersion;
692
+ }
693
+ if (typeof platformVersion === 'string') {
694
+ if (Platform.os.name === OS.Windows)
695
+ Platform.os.version = parseInt(platformVersion.split('.')[0], 10) >= 13 ? '11' : '10';
696
+ else
697
+ Platform.os.version = platformVersion;
698
+ }
699
+ if (typeof platform === 'string') {
700
+ if (/android/i.test(platform))
701
+ Platform.os.name = OS.Android;
702
+ else if (/ios|iphone|ipad/i.test(platform))
703
+ Platform.os.name = OS.iOS;
704
+ else if (/windows|win32/i.test(platform))
705
+ Platform.os.name = OS.Windows;
706
+ else if (/macos|macintel/i.test(platform))
707
+ Platform.os.name = OS.MacOS;
708
+ }
709
+ if (result.mobile === true)
710
+ Platform.device = Devices.Mobile;
711
+ });
712
+ }
531
713
  }
532
- Platform.device = Platform.os === OS.iOS || Platform.os === OS.Android ? Devices.Mobile : Platform.os === OS.Windows || Platform.os === OS.MacOS ? Devices.Desktop : Devices.Unknown;
533
- Platform.isMobile = Platform.device === Devices.Mobile;
534
- Platform.isDesktop = Platform.device === Devices.Desktop;
535
- Platform.isStandalone = getIsStandalone(Platform.os);
714
+ init();
536
715
 
537
716
  var currentAppearance = null;
538
717
  var appearanceIntervalId = null;
@@ -598,7 +777,7 @@ function getAppearance() {
598
777
  return new Promise(function (resolve) {
599
778
  resolve(getAppearanceFromElectron());
600
779
  });
601
- if (Platform.browser === Browsers.SamsungInternet)
780
+ if (Platform.browser.name === Browsers.SamsungInternet)
602
781
  return getAppearanceFromEngine();
603
782
  return new Promise(function (resolve) {
604
783
  resolve(getAppearanceFromMediaQuery());
@@ -682,7 +861,7 @@ function removeEntry(entry) {
682
861
  if (index !== -1)
683
862
  ENTRIES.splice(index, 1);
684
863
  if (ENTRIES.length === 0) {
685
- if (Platform.browser === Browsers.SamsungInternet)
864
+ if (Platform.browser.name === Browsers.SamsungInternet)
686
865
  stopPolling();
687
866
  else
688
867
  removeListener(entry.capture);
@@ -747,7 +926,7 @@ function onchange(listener, options) {
747
926
  if (index === -1) {
748
927
  ENTRIES.push(entry);
749
928
  if (ENTRIES.length === 1) {
750
- if (Platform.browser === Browsers.SamsungInternet)
929
+ if (Platform.browser.name === Browsers.SamsungInternet)
751
930
  startPolling();
752
931
  else
753
932
  addListener(entry.capture);
@@ -1 +1 @@
1
- "use strict";var e;!function(e){e.Unknown="unknown",e.Light="light",e.Dark="dark"}(e||(e={}));var o,r,n,i,a,t=void 0!==globalThis.matchMedia?globalThis.matchMedia("(prefers-color-scheme: dark)"):{matches:!1,media:"not all",onchange:null,addListener:function(){},removeListener:function(){},addEventListener:function(){},removeEventListener:function(){},dispatchEvent:function(){return!1}},s="not all"!==t.media,c="document"in globalThis?globalThis.document.createElement("canvas").getContext("2d",{willReadFrequently:!0}):null,m=[];!function(e){e.Unknown="Unknown",e.Android="Android",e.iOS="iOS",e.Windows="Windows",e.MacOS="MacOS"}(o||(o={})),function(e){e.Unknown="Unknown",e.Mobile="Mobile",e.Desktop="Desktop"}(r||(r={})),function(e){e.Unknown="Unknown",e.EdgeHTML="EdgeHTML",e.ArkWeb="ArkWeb",e.Blink="Blink",e.Presto="Presto",e.WebKit="WebKit",e.Trident="Trident",e.NetFront="NetFront",e.KHTML="KHTML",e.Tasman="Tasman",e.Gecko="Gecko"}(n||(n={})),function(e){e.Unknown="Unknown",e.Chrome="Chrome",e.Safari="Safari",e.Edge="Edge",e.Firefox="Firefox",e.Opera="Opera",e.IE="IE",e.SamsungInternet="SamsungInternet"}(i||(i={})),function(e){e.Unknown="Unknown",e.ReactNative="ReactNative",e.Electron="Electron",e.Cordova="Cordova"}(a||(a={}));var l=void 0!==globalThis.navigator&&"string"==typeof globalThis.navigator.userAgent?globalThis.navigator.userAgent:"",d={device:r.Unknown,os:o.Unknown,engine:n.Unknown,browser:i.Unknown,crossPlatformFramework:a.Unknown,osVersion:"",engineVersion:"",browserVersion:"",renderer:function(){if(void 0===globalThis.document)return"";var e=globalThis.document.createElement("canvas");if("function"!=typeof e.getContext)return"";var o=e.getContext("webgl2")||e.getContext("experimental-webgl")||e.getContext("webgl");if(null===o)return"";if(o instanceof WebGLRenderingContext||"getParameter"in o&&"function"==typeof o.getParameter){var r=o.getExtension("WEBGL_debug_renderer_info");return null===r?o.getParameter(o.RENDERER):o.getParameter(r.UNMASKED_RENDERER_WEBGL)}return""}(),userAgent:l,isNode:void 0!==globalThis.process&&void 0!==globalThis.process.versions&&void 0!==globalThis.process.versions.node,isMobile:!1,isDesktop:!1,isStandalone:!1,isWebview:/; ?wv|applewebkit(?!.*safari)/i.test(l)},u=[[/windows nt (6\.[23]); arm/i,o.Windows,w],[/windows (?:phone|mobile|iot)(?: os)?[\/ ]?([\d.]*( se)?)/i,o.Windows,w],[/windows[\/ ](1[01]|2000|3\.1|7|8(\.1)?|9[58]|me|server 20\d\d( r2)?|vista|xp)/i,o.Windows,w],[/windows nt ?([\d.)]*)(?!.+xbox)/i,o.Windows,w],[/\bwin(?=3| ?9|n)(?:nt| 9x )?([\d.;]*)/i,o.Windows,w],[/windows ce\/?([\d.]*)/i,o.Windows,w],[/[adehimnop]{4,7}\b(?:.*os (\w+) like mac|; opera)/i,o.iOS,g],[/(?:ios;fbsv|ios(?=.+ip(?:ad|hone))|ip(?:ad|hone)(?: |.+i(?:pad)?)os)[\/ ]([\w.]+)/i,o.iOS,g],[/cfnetwork\/.+darwin/i,o.iOS,g],[/mac os x ?([\w. ]*)/i,o.MacOS,g],[/(?:macintosh|mac_powerpc\b)(?!.+(haiku|morphos))/i,o.MacOS,g],[/droid ([\w.]+)\b.+(android[- ]x86)/i,o.Android],[/android\w*[-\/.; ]?([\d.]*)/i,o.Android]],v=[[/windows.+ edge\/([\w.]+)/i,n.EdgeHTML],[/arkweb\/([\w.]+)/i,n.ArkWeb],[/webkit\/537\.36.+chrome\/(?!27)([\w.]+)/i,n.Blink],[/presto\/([\w.]+)/i,n.Presto],[/webkit\/([\w.]+)/i,n.WebKit],[/trident\/([\w.]+)/i,n.Trident],[/netfront\/([\w.]+)/i,n.NetFront],[/khtml[\/ ]\(?([\w.]+)/i,n.KHTML],[/tasman[\/ ]\(?([\w.]+)/i,n.Tasman],[/rv:([\w.]{1,9})\b.+gecko/i,n.Gecko]],f=[[/\b(?:crmo|crios)\/([\w.]+)/i,i.Chrome],[/webview.+edge\/([\w.]+)/i,i.Edge],[/edg(?:e|ios|a)?\/([\w.]+)/i,i.Edge],[/opera mini\/([-\w.]+)/i,i.Opera],[/opera [mobileta]{3,6}\b.+version\/([-\w.]+)/i,i.Opera],[/opera(?:.+version\/|[\/ ]+)([\w.]+)/i,i.Opera],[/opios[\/ ]+([\w.]+)/i,i.Opera],[/\bop(?:rg)?x\/([\w.]+)/i,i.Opera],[/\bopr\/([\w.]+)/i,i.Opera],[/iemobile(?:browser|boat|jet)[\/ ]?([\d.]*)/i,i.IE],[/(?:ms|\()ie ([\w.]+)/i,i.IE],[/trident.+rv[: ]([\w.]{1,9})\b.+like gecko/i,i.IE],[/\bfocus\/([\w.]+)/i,i.Firefox],[/\bopt\/([\w.]+)/i,i.Opera],[/coast\/([\w.]+)/i,i.Opera],[/fxios\/([\w.-]+)/i,i.Firefox],[/samsungbrowser\/([\w.]+)/i,i.SamsungInternet],[/headlesschrome(?:\/([\w.]+)| )/i,i.Chrome],[/wv\).+chrome\/([\w.]+).+edgw\//i,i.Edge],[/ wv\).+(chrome)\/([\w.]+)/i,i.Chrome],[/chrome\/([\w.]+) mobile/i,i.Chrome],[/chrome\/v?([\w.]+)/i,i.Chrome],[/version\/([\w.,]+) .*mobile(?:\/\w+ | ?)safari/i,i.Safari],[/iphone .*mobile(?:\/\w+ | ?)safari/i,i.Safari],[/version\/([\w.,]+) .*safari/i,i.Safari],[/webkit.+?(?:mobile ?safari|safari)(\/[\w.]+)/i,i.Safari,"1"],[/(?:mobile|tablet);.*firefox\/([\w.-]+)/i,i.Firefox],[/mobile vr; rv:([\w.]+)\).+firefox/i,i.Firefox],[/firefox\/([\w.]+)/i,i.Firefox]];function w(e){if(void 0===e)return"";var o={"4.90":"ME","NT3.51":"NT 3.11","NT4.0":"NT 4.0","NT 5.0":"2000","NT 5.1":"XP","NT 5.2":"XP","NT 6.0":"Vista","NT 6.1":"7","NT 6.2":"8","NT 6.3":"8.1","NT 6.4":"10","NT 10.0":"10",ARM:"RT"}[e];return void 0!==o?o:e}function g(e){return void 0===e?"":e.replace(/_/g,".")}function b(e,o){return 10===e.major&&0===e.minor&&e.build>=22e3?"11":10===e.major&&0===e.minor&&e.build<22e3?"10":6===e.major&&3===e.minor?"8.1":6===e.major&&2===e.minor?"8":6===e.major&&1===e.minor?"7":6===e.major&&0===e.minor?"Vista":5===e.major&&1===e.minor||5===e.major&&2===e.minor?"XP":5===e.major&&0===e.minor?"2000":4===e.major&&90===e.minor?"ME":4===e.major&&0===e.minor?"NT 4.0":3===e.major&&51===e.minor?"NT 3.11":o}function h(e,o){return"function"==typeof o?o(e):"string"==typeof o?o:void 0===e?"":e}function p(e){var o=e.split(".");return{major:parseInt(o[0]||"0"),minor:parseInt(o[1]||"0"),build:parseInt(o[2]||"0")}}(void 0!==globalThis.process&&void 0!==globalThis.process.versions&&void 0!==globalThis.process.versions.electron||/ electron\//i.test(l))&&(d.crossPlatformFramework=a.Electron),void 0!==globalThis.navigator&&"ReactNative"===globalThis.navigator.product&&(d.crossPlatformFramework=a.ReactNative);for(var k=0;k<u.length;k++){var j=(L=u[k])[0],T=L[1],E=L[2];if(null!==(x=d.userAgent.match(j))){d.os=T,d.osVersion=h(x[1],E);break}}d.os===o.iOS&&0===function(e,o){for(var r=e.split("."),n=o.split("."),i=Math.max(r.length,n.length),a=0;a<i;a++){var t=void 0,s=void 0;if((t=a<r.length?parseInt(r[a],10):0)>(s=a<n.length?parseInt(n[a],10):0))return 1;if(t<s)return-1}return 0}(d.osVersion,"18.6")&&(null!==(N=/\) Version\/([\d.]+)/.exec(d.userAgent))&&parseInt(N[1].substring(0,2),10)>=26&&(d.osVersion=N[1]));for(k=0;k<v.length;k++){j=(L=v[k])[0];var S=L[1];E=L[2];if(null!==(x=d.userAgent.match(j))){d.engine=S,d.engineVersion=h(x[1],E);break}}for(k=0;k<f.length;k++){j=(L=f[k])[0];var L,x,I=L[1];E=L[2];if(null!==(x=d.userAgent.match(j))){d.browser=I,d.browserVersion=h(x[1],E);break}}if(d.crossPlatformFramework===a.ReactNative)try{T=(V=require("react-native").Platform).OS;var N=p(M=""+V.Version);switch(T){case"android":d.os=o.Android,d.osVersion=function(e,o){return e.major>=36?"16":35===e.major?"15":34===e.major?"14":33===e.major?"13":32===e.major?"12.1":31===e.major?"12":30===e.major?"11":29===e.major?"10":28===e.major?"9":27===e.major?"8.1":26===e.major?"8.0":25===e.major?"7.1":24===e.major?"7.0":23===e.major?"6.0":22===e.major?"5.1":21===e.major?"5.0":20===e.major||19===e.major?"4.4":18===e.major?"4.3":17===e.major?"4.2":16===e.major?"4.1":15===e.major?"4.0.3":14===e.major?"4.0":13===e.major?"3.2":12===e.major?"3.1":11===e.major?"3.0":10===e.major?"2.3.3":9===e.major?"2.3":8===e.major?"2.2":7===e.major?"2.1":6===e.major?"2.0.1":5===e.major?"2.0":4===e.major?"1.6":3===e.major?"1.5":2===e.major?"1.1":1===e.major?"1.0":o}(N,M);break;case"ios":d.os=o.iOS,d.osVersion=M;break;case"windows":d.os=o.Windows,d.osVersion=b(N,M);break;case"macos":d.os=o.MacOS,d.osVersion=M}}catch(e){}if(d.isNode)try{var M,V=(T=require("os")).platform();N=p(M=T.release());switch(V){case"win32":d.os=o.Windows,d.osVersion=b(N,M);break;case"darwin":d.os=o.MacOS,d.osVersion=function(e,o){return e.major>=24?e.major-9+"."+e.minor+"."+e.build:23===e.major?"14."+e.minor+"."+e.build:22===e.major?"13."+e.minor+"."+e.build:21===e.major?"12."+e.minor+"."+e.build:20===e.major?"11."+e.minor+"."+e.build:19===e.major?"10.15."+e.minor:18===e.major?"10.14."+e.minor:17===e.major?"10.13."+e.minor:16===e.major?"10.12."+e.minor:15===e.major?"10.11."+e.minor:14===e.major?"10.10."+e.minor:13===e.major?"10.9."+e.minor:e.major>=5&&e.major<=12?"10."+(e.major-4)+"."+e.minor:o}(N,M);break;case"android":d.os=o.Android,d.osVersion=M;break;case"linux":/android/i.test(M)&&(d.os=o.Android,d.osVersion=M)}}catch(e){}void 0!==globalThis.document&&globalThis.document.addEventListener("deviceready",(function(){if(d.crossPlatformFramework=a.Cordova,d.os===o.Unknown&&void 0!==globalThis.device){switch(globalThis.device.platform){case"Android":d.os=o.Android;break;case"iOS":d.os=o.iOS}d.osVersion=globalThis.device.version}}),!1),void 0!==navigator.userAgentData&&void 0!==navigator.userAgentData.getHighEntropyValues&&navigator.userAgentData.getHighEntropyValues(["brands","fullVersionList","mobile","model","platform","platformVersion","architecture","formFactors","bitness","uaFullVersion","wow64"]).then((function(e){for(var r,n=e.fullVersionList||e.brands||[],i=e.platformVersion,a=0;a<n.length;a++){var t=null==(r=n[a])?{brand:"",version:""}:"string"==typeof r?{brand:r,version:""}:{brand:r.brand,version:r.version},s=t.brand,c=t.version;/not.a.brand/i.test(s)||"Chromium"===s&&(d.engineVersion=c)}"string"==typeof i&&(d.os===o.Windows&&parseInt(i.replace(/[^\d.]/g,"").split(".")[0],10)>=13?d.osVersion="11":d.osVersion=i)})),d.device=d.os===o.iOS||d.os===o.Android?r.Mobile:d.os===o.Windows||d.os===o.MacOS?r.Desktop:r.Unknown,d.isMobile=d.device===r.Mobile,d.isDesktop=d.device===r.Desktop,d.isStandalone=function(e){return"matchMedia"in globalThis&&(e===o.iOS?"standalone"in navigator&&!!navigator.standalone:globalThis.matchMedia("(display-mode: standalone)").matches)}(d.os);var A=null,P=null;function y(){return new Promise((function(o){var r=new Image;r.onload=function(){if(null===c)return o(e.Light);c.drawImage(r,0,0);var n=c.getImageData(0,0,1,1).data;(n[0]&n[1]&n[2])<255?o(e.Dark):o(e.Light)},r.onerror=function(){o(e.Unknown)},r.src="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjxyZWN0IHdpZHRoPSIxIiBoZWlnaHQ9IjEiIGZpbGw9IndoaXRlIi8+PC9zdmc+"}))}function O(){return s?t.matches?e.Dark:e.Light:e.Unknown}function U(){try{return require("electron").nativeTheme.shouldUseDarkColors?e.Dark:e.Light}catch(o){return e.Unknown}}function W(){return d.crossPlatformFramework===a.ReactNative?new Promise((function(o){o(function(){try{return require("react-native").Appearance.getColorScheme()||e.Unknown}catch(o){return e.Unknown}}())})):d.crossPlatformFramework===a.Electron?new Promise((function(e){e(U())})):d.browser===i.SamsungInternet?y():new Promise((function(e){e(O())}))}function C(o){var r;(r=o.matches?e.Dark:e.Light)!==A&&F(A=r)}function F(e){for(var o=0;o<m.length;o++){var r=m[o];r.fn(e),r.once&&R(r)}}function R(e){var o,r=D(e);-1!==r&&m.splice(r,1),0===m.length&&(d.browser===i.SamsungInternet?(A=null,null!==P&&(clearInterval(P),P=null)):(o=e.capture,A=null,"function"==typeof t.removeEventListener?t.removeEventListener("change",C,o):"function"==typeof t.removeListener&&t.removeListener(C)))}function D(e){for(var o=0;o<m.length;o++)if(m[o].fn===e.fn&&m[o].capture===e.capture)return o;return-1}var H={installed:!1,name:"Appearance",module:{get value(){return W()},set value(e){!function(e){if(d.crossPlatformFramework===a.ReactNative)try{return void require("react-native").Appearance.setColorScheme(e)}catch(e){}if(d.crossPlatformFramework===a.Electron)try{return void(require("electron").nativeTheme.themeSource=e||"system")}catch(e){}}(e)},onchange:function(o,r){void 0===r&&(r=!1);if(d.crossPlatformFramework===a.ReactNative)return function(o){try{var r=require("react-native").Appearance.addChangeListener((function(r){o(r.colorScheme||e.Unknown)}));return function(){r.remove()}}catch(e){}return function(){}}(o);if(d.crossPlatformFramework===a.Electron)return function(e){try{var o=require("electron"),r=function(){e(U())};return void 0!==o.nativeTheme.on&&o.nativeTheme.on("updated",r),function(){void 0!==o.nativeTheme.removeListener&&o.nativeTheme.removeListener("updated",r)}}catch(e){}return function(){}}(o);var n={fn:o,capture:!1,once:!1};"boolean"==typeof r&&(r={capture:r});void 0!==r.capture&&(n.capture=r.capture);void 0!==r.once&&(n.once=r.once);void 0!==r.signal&&(n.signal=r.signal);var s=D(n);-1===s?(m.push(n),1===m.length&&(d.browser===i.SamsungInternet?(y().then((function(e){A=e})),P=globalThis.setInterval((function(){y().then((function(e){e!==A&&(A=e,F(e))}))}),2e3)):(c=n.capture,A=O(),"function"==typeof t.addEventListener?t.addEventListener("change",C,c):"function"==typeof t.addListener&&t.addListener(C))),W().then(F)):m[s].once&&!n.once&&(m[s].once=!1);var c;void 0!==n.signal&&(n.signal.aborted?R(n):n.signal.addEventListener("abort",(function e(){void 0!==n.signal&&n.signal.removeEventListener("abort",e),R(n)})));return function(){R(n)}}},Constants:{Appearances:e},Errors:{}};module.exports=H;
1
+ "use strict";var e;!function(e){e.Unknown="unknown",e.Light="light",e.Dark="dark"}(e||(e={}));var n,r,o,i,a,t=void 0!==globalThis.matchMedia?globalThis.matchMedia("(prefers-color-scheme: dark)"):{matches:!1,media:"not all",onchange:null,addListener:function(){},removeListener:function(){},addEventListener:function(){},removeEventListener:function(){},dispatchEvent:function(){return!1}},s="not all"!==t.media,l="document"in globalThis?globalThis.document.createElement("canvas").getContext("2d",{willReadFrequently:!0}):null,m=[];!function(e){e.Unknown="Unknown",e.Android="Android",e.iOS="iOS",e.Windows="Windows",e.MacOS="MacOS"}(n||(n={})),function(e){e.Unknown="Unknown",e.Mobile="Mobile",e.Desktop="Desktop"}(r||(r={})),function(e){e.Unknown="Unknown",e.EdgeHTML="EdgeHTML",e.ArkWeb="ArkWeb",e.Blink="Blink",e.Presto="Presto",e.WebKit="WebKit",e.Trident="Trident",e.NetFront="NetFront",e.KHTML="KHTML",e.Tasman="Tasman",e.Gecko="Gecko"}(o||(o={})),function(e){e.Unknown="Unknown",e.Chrome="Chrome",e.Safari="Safari",e.Edge="Edge",e.Firefox="Firefox",e.Opera="Opera",e.IE="IE",e.SamsungInternet="SamsungInternet"}(i||(i={})),function(e){e.Unknown="Unknown",e.ReactNative="ReactNative",e.Electron="Electron",e.Cordova="Cordova"}(a||(a={}));var c=void 0!==globalThis.navigator&&"string"==typeof globalThis.navigator.userAgent?globalThis.navigator.userAgent:"",d={os:{name:n.Unknown,version:""},engine:{name:o.Unknown,version:""},browser:{name:i.Unknown,version:""},crossPlatformFramework:a.Unknown,userAgent:c,get network(){return function(){var e={isOnline:null,effectiveType:null,type:null,downlink:null,rtt:null,saveData:null};if(void 0!==globalThis.navigator){void 0!==globalThis.navigator.onLine&&(e.isOnline=globalThis.navigator.onLine);var r=globalThis.navigator.connection||globalThis.navigator.mozConnection||globalThis.navigator.webkitConnection;void 0!==r&&(void 0!==r.effectiveType&&(e.effectiveType=r.effectiveType),void 0!==r.type&&(e.type=r.type),void 0!==r.downlink&&(e.downlink=r.downlink),void 0!==r.rtt&&(e.rtt=r.rtt),void 0!==r.saveData&&(e.saveData=r.saveData))}if(d.isNode){try{for(var o=require("os").networkInterfaces(),i=Object.keys(o),a=0;a<i.length;a++){for(var t=o[i[a]],s=0;s<t.length;s++){var l=t[s];l.internal||"IPv4"!==l.family||(e.isOnline=!0)}if(e.isOnline)break}}catch(e){}try{var m=require("child_process");if(d.os.name===n.Windows){try{(c=m.execSync("netsh wlan show interfaces",{encoding:"utf8",timeout:5e3})).includes("State")&&c.includes("connected")&&(e.type="wifi")}catch(e){}if(null===e.type)try{(c=m.execSync("ipconfig",{encoding:"utf8",timeout:5e3})).includes("Ethernet adapter")&&(e.type="ethernet")}catch(e){}null===e.type&&(e.type="other")}else if(d.os.name===n.MacOS)try{var c=m.execSync("networksetup -listallhardwareports",{encoding:"utf8",timeout:5e3}),u=m.execSync("route -n get default | grep interface",{encoding:"utf8",timeout:5e3});u.includes("en0")&&c.includes("Wi-Fi")?e.type="wifi":u.includes("en")||c.includes("Ethernet")?e.type="ethernet":e.type="other"}catch(n){e.type="other"}}catch(e){}}return e}()},get device(){return this.os.name===n.iOS||this.os.name===n.Android?r.Mobile:this.os.name===n.Windows||this.os.name===n.MacOS?r.Desktop:r.Unknown},get renderer(){return function(){if(void 0===globalThis.document)return"";var e=globalThis.document.createElement("canvas");if("function"!=typeof e.getContext)return"";var n=e.getContext("webgl2")||e.getContext("experimental-webgl")||e.getContext("webgl");if(null===n)return"";if(n instanceof WebGLRenderingContext||"getParameter"in n&&"function"==typeof n.getParameter){var r=n.getExtension("WEBGL_debug_renderer_info");return null===r?n.getParameter(n.RENDERER):n.getParameter(r.UNMASKED_RENDERER_WEBGL)}return""}()},get isMobile(){return this.device===r.Mobile},get isDesktop(){return this.device===r.Desktop},get isWebview(){return/; ?wv|applewebkit(?!.*safari)/i.test(this.userAgent)},get isNode(){return void 0!==globalThis.process&&void 0!==globalThis.process.versions&&void 0!==globalThis.process.versions.node},get isStandalone(){return this.os.name===n.iOS?"standalone"in globalThis.navigator&&!!globalThis.navigator.standalone:"matchMedia"in globalThis&&globalThis.matchMedia("(display-mode: standalone)").matches}},u=[[/windows nt (6\.[23]); arm/i,n.Windows,w],[/windows (?:phone|mobile|iot)(?: os)?[\/ ]?([\d.]*( se)?)/i,n.Windows,w],[/windows[\/ ](1[01]|2000|3\.1|7|8(\.1)?|9[58]|me|server 20\d\d( r2)?|vista|xp)/i,n.Windows,w],[/windows nt ?([\d.)]*)(?!.+xbox)/i,n.Windows,w],[/\bwin(?=3| ?9|n)(?:nt| 9x )?([\d.;]*)/i,n.Windows,w],[/windows ce\/?([\d.]*)/i,n.Windows,w],[/[adehimnop]{4,7}\b(?:.*os (\w+) like mac|; opera)/i,n.iOS,h],[/(?:ios;fbsv|ios(?=.+ip(?:ad|hone))|ip(?:ad|hone)(?: |.+i(?:pad)?)os)[\/ ]([\w.]+)/i,n.iOS,h],[/cfnetwork\/.+darwin/i,n.iOS,h],[/mac os x ?([\w. ]*)/i,n.MacOS,h],[/(?:macintosh|mac_powerpc\b)(?!.+(haiku|morphos))/i,n.MacOS,h],[/droid ([\w.]+)\b.+(android[- ]x86)/i,n.Android],[/android\w*[-\/.; ]?([\d.]*)/i,n.Android]],v=[[/windows.+ edge\/([\w.]+)/i,o.EdgeHTML],[/arkweb\/([\w.]+)/i,o.ArkWeb],[/webkit\/537\.36.+chrome\/(?!27)([\w.]+)/i,o.Blink],[/presto\/([\w.]+)/i,o.Presto],[/webkit\/([\w.]+)/i,o.WebKit],[/trident\/([\w.]+)/i,o.Trident],[/netfront\/([\w.]+)/i,o.NetFront],[/khtml[\/ ]\(?([\w.]+)/i,o.KHTML],[/tasman[\/ ]\(?([\w.]+)/i,o.Tasman],[/rv:([\w.]{1,9})\b.+gecko/i,o.Gecko]],f=[[/\b(?:crmo|crios)\/([\w.]+)/i,i.Chrome],[/webview.+edge\/([\w.]+)/i,i.Edge],[/edg(?:e|ios|a)?\/([\w.]+)/i,i.Edge],[/opera mini\/([-\w.]+)/i,i.Opera],[/opera [mobileta]{3,6}\b.+version\/([-\w.]+)/i,i.Opera],[/opera(?:.+version\/|[\/ ]+)([\w.]+)/i,i.Opera],[/opios[\/ ]+([\w.]+)/i,i.Opera],[/\bop(?:rg)?x\/([\w.]+)/i,i.Opera],[/\bopr\/([\w.]+)/i,i.Opera],[/iemobile(?:browser|boat|jet)[\/ ]?([\d.]*)/i,i.IE],[/(?:ms|\()ie ([\w.]+)/i,i.IE],[/trident.+rv[: ]([\w.]{1,9})\b.+like gecko/i,i.IE],[/\bfocus\/([\w.]+)/i,i.Firefox],[/\bopt\/([\w.]+)/i,i.Opera],[/coast\/([\w.]+)/i,i.Opera],[/fxios\/([\w.-]+)/i,i.Firefox],[/samsungbrowser\/([\w.]+)/i,i.SamsungInternet],[/headlesschrome(?:\/([\w.]+)| )/i,i.Chrome],[/wv\).+chrome\/([\w.]+).+edgw\//i,i.Edge],[/ wv\).+(chrome)\/([\w.]+)/i,i.Chrome],[/chrome\/([\w.]+) mobile/i,i.Chrome],[/chrome\/v?([\w.]+)/i,i.Chrome],[/version\/([\w.,]+) .*mobile(?:\/\w+ | ?)safari/i,i.Safari],[/iphone .*mobile(?:\/\w+ | ?)safari/i,i.Safari],[/version\/([\w.,]+) .*safari/i,i.Safari],[/webkit.+?(?:mobile ?safari|safari)(\/[\w.]+)/i,i.Safari,"1"],[/(?:mobile|tablet);.*firefox\/([\w.-]+)/i,i.Firefox],[/mobile vr; rv:([\w.]+)\).+firefox/i,i.Firefox],[/firefox\/([\w.]+)/i,i.Firefox]],g={"Google Chrome":"Chrome","Microsoft Edge":"Edge","Microsoft Edge WebView2":"Edge WebView2","Android WebView":"Chrome WebView",HeadlessChrome:"Chrome Headless",OperaMobile:"Opera Mobi"};function w(e){if(void 0===e)return"";var n={"4.90":"ME","NT3.51":"NT 3.11","NT4.0":"NT 4.0","NT 5.0":"2000","NT 5.1":"XP","NT 5.2":"XP","NT 6.0":"Vista","NT 6.1":"7","NT 6.2":"8","NT 6.3":"8.1","NT 6.4":"10","NT 10.0":"10",ARM:"RT"}[e];return void 0!==n?n:e}function h(e){return void 0===e?"":e.replace(/_/g,".")}function b(e,n){return 10===e.major&&0===e.minor&&e.build>=22e3?"11":10===e.major&&0===e.minor&&e.build<22e3?"10":6===e.major&&3===e.minor?"8.1":6===e.major&&2===e.minor?"8":6===e.major&&1===e.minor?"7":6===e.major&&0===e.minor?"Vista":5===e.major&&1===e.minor||5===e.major&&2===e.minor?"XP":5===e.major&&0===e.minor?"2000":4===e.major&&90===e.minor?"ME":4===e.major&&0===e.minor?"NT 4.0":3===e.major&&51===e.minor?"NT 3.11":n}function p(e,n){return e.major>=24?e.major-9+"."+e.minor+"."+e.build:23===e.major?"14."+e.minor+"."+e.build:22===e.major?"13."+e.minor+"."+e.build:21===e.major?"12."+e.minor+"."+e.build:20===e.major?"11."+e.minor+"."+e.build:19===e.major?"10.15."+e.minor:18===e.major?"10.14."+e.minor:17===e.major?"10.13."+e.minor:16===e.major?"10.12."+e.minor:15===e.major?"10.11."+e.minor:14===e.major?"10.10."+e.minor:13===e.major?"10.9."+e.minor:e.major>=5&&e.major<=12?"10."+(e.major-4)+"."+e.minor:n}function k(e,n){return e.major>=36?"16":35===e.major?"15":34===e.major?"14":33===e.major?"13":32===e.major?"12.1":31===e.major?"12":30===e.major?"11":29===e.major?"10":28===e.major?"9":27===e.major?"8.1":26===e.major?"8.0":25===e.major?"7.1":24===e.major?"7.0":23===e.major?"6.0":22===e.major?"5.1":21===e.major?"5.0":20===e.major||19===e.major?"4.4":18===e.major?"4.3":17===e.major?"4.2":16===e.major?"4.1":15===e.major?"4.0.3":14===e.major?"4.0":13===e.major?"3.2":12===e.major?"3.1":11===e.major?"3.0":10===e.major?"2.3.3":9===e.major?"2.3":8===e.major?"2.2":7===e.major?"2.1":6===e.major?"2.0.1":5===e.major?"2.0":4===e.major?"1.6":3===e.major?"1.5":2===e.major?"1.1":1===e.major?"1.0":n}function T(e,n){return"function"==typeof n?n(e):"string"==typeof n?n:void 0===e?"":e}function j(e){var n=e.split(".");return{major:parseInt(n[0]||"0"),minor:parseInt(n[1]||"0"),build:parseInt(n[2]||"0")}}function y(){if(d.crossPlatformFramework=a.Cordova,void 0!==globalThis.device)switch(globalThis.device.platform){case"Android":d.os={name:n.Android,version:globalThis.device.version};break;case"iOS":d.os={name:n.iOS,version:globalThis.device.version}}}!function(){(void 0!==globalThis.process&&void 0!==globalThis.process.versions&&void 0!==globalThis.process.versions.electron||/ electron\//i.test(c))&&(d.crossPlatformFramework=a.Electron),void 0!==globalThis.navigator&&"ReactNative"===globalThis.navigator.product&&(d.crossPlatformFramework=a.ReactNative);for(var e=0;e<u.length;e++){var o=(w=u[e])[0],t=w[1],s=w[2];if(null!==(h=d.userAgent.match(o))){d.os={name:t,version:T(h[1],s)};break}}var l;for(d.os.name===n.iOS&&0===function(e,n){for(var r=e.split("."),o=n.split("."),i=Math.max(r.length,o.length),a=0;a<i;a++){var t=void 0,s=void 0;if((t=a<r.length?parseInt(r[a],10):0)>(s=a<o.length?parseInt(o[a],10):0))return 1;if(t<s)return-1}return 0}(d.os.version,"18.6")&&null!==(S=/\) Version\/([\d.]+)/.exec(d.userAgent))&&parseInt(S[1].substring(0,2),10)>=26&&(d.os.version=S[1]),e=0;e<v.length;e++){o=(w=v[e])[0];var m=w[1];s=w[2];if(null!==(h=d.userAgent.match(o))){d.engine={name:m,version:T(h[1],s)};break}}for(e=0;e<f.length;e++){o=(w=f[e])[0];var w,h,E=w[1];s=w[2];if(null!==(h=d.userAgent.match(o))){d.browser={name:E,version:T(h[1],s)};break}}if(d.crossPlatformFramework===a.ReactNative)try{t=(x=require("react-native").Platform).OS;var S=j(O=""+x.Version);switch(t){case"android":d.os={name:n.Android,version:k(S,O)};break;case"ios":d.os={name:n.iOS,version:O};break;case"windows":d.os={name:n.Windows,version:b(S,O)};break;case"macos":d.os={name:n.MacOS,version:O}}}catch(e){}if(d.isNode)try{var O,x=(t=require("os")).platform();S=j(O=t.release());switch(x){case"win32":d.os={name:n.Windows,version:b(S,O)};break;case"darwin":d.os={name:n.MacOS,version:p(S,O)};break;case"android":d.os={name:n.Android,version:O};break;case"linux":/android/i.test(O)&&(d.os={name:n.Android,version:O})}}catch(e){}void 0!==globalThis.document&&(void 0!==globalThis.device?y():globalThis.document.addEventListener("deviceready",y,!1)),l=globalThis.navigator,void 0!==globalThis.navigator&&void 0!==l.userAgentData&&void 0!==l.userAgentData.getHighEntropyValues&&globalThis.navigator.userAgentData.getHighEntropyValues(["brands","fullVersionList","mobile","model","platform","platformVersion","architecture","formFactors","bitness","uaFullVersion","wow64"]).then((function(e){for(var o,a=e.fullVersionList||e.brands||[],t=e.platformVersion,s=e.platform,l=d.browser.name,m=null,c=0;c<a.length;c++){var u=null==(o=a[c])?{brand:"",version:""}:"string"==typeof o?{brand:o,version:""}:{brand:o.brand,version:o.version},v=u.version,f=u.brand;/not.a.brand/i.test(f)||((null===m||/Chrom/.test(m)&&"Chromium"!==f||"Edge"===m&&/WebView2/.test(f))&&(f=g[f]||f,null!==(m=l)&&!/Chrom/.test(m)&&/Chrom/.test(f)||("Chrome"===(l=f)||"Chrome WebView"===l||"Chrome Headless"===l?d.browser.name=i.Chrome:"Edge"===l||"Edge WebView2"===l?d.browser.name=i.Edge:"Opera Mobi"===l&&(d.browser.name=i.Opera),d.browser.version=v),m=f),"Chromium"===f&&(d.engine.version=v))}"string"==typeof t&&(d.os.name===n.Windows?d.os.version=parseInt(t.split(".")[0],10)>=13?"11":"10":d.os.version=t),"string"==typeof s&&(/android/i.test(s)?d.os.name=n.Android:/ios|iphone|ipad/i.test(s)?d.os.name=n.iOS:/windows|win32/i.test(s)?d.os.name=n.Windows:/macos|macintel/i.test(s)&&(d.os.name=n.MacOS)),!0===e.mobile&&(d.device=r.Mobile)}))}();var E=null,S=null;function O(){return new Promise((function(n){var r=new Image;r.onload=function(){if(null===l)return n(e.Light);l.drawImage(r,0,0);var o=l.getImageData(0,0,1,1).data;(o[0]&o[1]&o[2])<255?n(e.Dark):n(e.Light)},r.onerror=function(){n(e.Unknown)},r.src="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjxyZWN0IHdpZHRoPSIxIiBoZWlnaHQ9IjEiIGZpbGw9IndoaXRlIi8+PC9zdmc+"}))}function x(){return s?t.matches?e.Dark:e.Light:e.Unknown}function C(){try{return require("electron").nativeTheme.shouldUseDarkColors?e.Dark:e.Light}catch(n){return e.Unknown}}function M(){return d.crossPlatformFramework===a.ReactNative?new Promise((function(n){n(function(){try{return require("react-native").Appearance.getColorScheme()||e.Unknown}catch(n){return e.Unknown}}())})):d.crossPlatformFramework===a.Electron?new Promise((function(e){e(C())})):d.browser.name===i.SamsungInternet?O():new Promise((function(e){e(x())}))}function L(n){var r;(r=n.matches?e.Dark:e.Light)!==E&&W(E=r)}function W(e){for(var n=0;n<m.length;n++){var r=m[n];r.fn(e),r.once&&I(r)}}function I(e){var n,r=A(e);-1!==r&&m.splice(r,1),0===m.length&&(d.browser.name===i.SamsungInternet?(E=null,null!==S&&(clearInterval(S),S=null)):(n=e.capture,E=null,"function"==typeof t.removeEventListener?t.removeEventListener("change",L,n):"function"==typeof t.removeListener&&t.removeListener(L)))}function A(e){for(var n=0;n<m.length;n++)if(m[n].fn===e.fn&&m[n].capture===e.capture)return n;return-1}var N={installed:!1,name:"Appearance",module:{get value(){return M()},set value(e){!function(e){if(d.crossPlatformFramework===a.ReactNative)try{return void require("react-native").Appearance.setColorScheme(e)}catch(e){}if(d.crossPlatformFramework===a.Electron)try{return void(require("electron").nativeTheme.themeSource=e||"system")}catch(e){}}(e)},onchange:function(n,r){void 0===r&&(r=!1);if(d.crossPlatformFramework===a.ReactNative)return function(n){try{var r=require("react-native").Appearance.addChangeListener((function(r){n(r.colorScheme||e.Unknown)}));return function(){r.remove()}}catch(e){}return function(){}}(n);if(d.crossPlatformFramework===a.Electron)return function(e){try{var n=require("electron"),r=function(){e(C())};return void 0!==n.nativeTheme.on&&n.nativeTheme.on("updated",r),function(){void 0!==n.nativeTheme.removeListener&&n.nativeTheme.removeListener("updated",r)}}catch(e){}return function(){}}(n);var o={fn:n,capture:!1,once:!1};"boolean"==typeof r&&(r={capture:r});void 0!==r.capture&&(o.capture=r.capture);void 0!==r.once&&(o.once=r.once);void 0!==r.signal&&(o.signal=r.signal);var s=A(o);-1===s?(m.push(o),1===m.length&&(d.browser.name===i.SamsungInternet?(O().then((function(e){E=e})),S=globalThis.setInterval((function(){O().then((function(e){e!==E&&(E=e,W(e))}))}),2e3)):(l=o.capture,E=x(),"function"==typeof t.addEventListener?t.addEventListener("change",L,l):"function"==typeof t.addListener&&t.addListener(L))),M().then(W)):m[s].once&&!o.once&&(m[s].once=!1);var l;void 0!==o.signal&&(o.signal.aborted?I(o):o.signal.addEventListener("abort",(function e(){void 0!==o.signal&&o.signal.removeEventListener("abort",e),I(o)})));return function(){I(o)}}},Constants:{Appearances:e},Errors:{}};module.exports=N;