native-fn 1.0.74 → 1.0.75

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 +1 -1
@@ -394,21 +394,43 @@ var CrossPlatformFramework;
394
394
  var USER_AGENT = typeof globalThis.navigator !== 'undefined' && typeof globalThis.navigator.userAgent === 'string' ? globalThis.navigator.userAgent : '';
395
395
 
396
396
  var Platform = {
397
- device: Devices.Unknown,
398
- os: OS.Unknown,
399
- engine: Engines.Unknown,
400
- browser: Browsers.Unknown,
397
+ os: { name: OS.Unknown, version: '' },
398
+ engine: { name: Engines.Unknown, version: '' },
399
+ browser: { name: Browsers.Unknown, version: '' },
401
400
  crossPlatformFramework: CrossPlatformFramework.Unknown,
402
- osVersion: '',
403
- engineVersion: '',
404
- browserVersion: '',
405
- renderer: getRenderer(),
406
401
  userAgent: USER_AGENT,
407
- isNode: typeof globalThis.process !== 'undefined' && typeof globalThis.process.versions !== 'undefined' && globalThis.process.versions.node !== undefined,
408
- isMobile: false,
409
- isDesktop: false,
410
- isStandalone: false,
411
- isWebview: /; ?wv|applewebkit(?!.*safari)/i.test(USER_AGENT),
402
+ get network() {
403
+ return getNetwork();
404
+ },
405
+ get device() {
406
+ if (this.os.name === OS.iOS || this.os.name === OS.Android)
407
+ return Devices.Mobile;
408
+ if (this.os.name === OS.Windows || this.os.name === OS.MacOS)
409
+ return Devices.Desktop;
410
+ return Devices.Unknown;
411
+ },
412
+ get renderer() {
413
+ return getRenderer();
414
+ },
415
+ get isMobile() {
416
+ return this.device === Devices.Mobile;
417
+ },
418
+ get isDesktop() {
419
+ return this.device === Devices.Desktop;
420
+ },
421
+ get isWebview() {
422
+ return /; ?wv|applewebkit(?!.*safari)/i.test(this.userAgent);
423
+ },
424
+ get isNode() {
425
+ return typeof globalThis.process !== 'undefined' && typeof globalThis.process.versions !== 'undefined' && globalThis.process.versions.node !== undefined;
426
+ },
427
+ get isStandalone() {
428
+ if (this.os.name === OS.iOS)
429
+ return 'standalone' in globalThis.navigator && !!globalThis.navigator.standalone;
430
+ if (!('matchMedia' in globalThis))
431
+ return false;
432
+ return globalThis.matchMedia('(display-mode: standalone)').matches;
433
+ },
412
434
  };
413
435
  var OS_RESOLVER_MAP = [
414
436
  [/windows nt (6\.[23]); arm/i, OS.Windows, resolveWindowsVersion],
@@ -468,6 +490,14 @@ var BROWSER_RESOLVER_MAP = [
468
490
  [/mobile vr; rv:([\w.]+)\).+firefox/i, Browsers.Firefox],
469
491
  [/firefox\/([\w.]+)/i, Browsers.Firefox],
470
492
  ];
493
+ var HIGH_ENTROPY_BRAND_NAME_MAP = {
494
+ 'Google Chrome': 'Chrome',
495
+ 'Microsoft Edge': 'Edge',
496
+ 'Microsoft Edge WebView2': 'Edge WebView2',
497
+ 'Android WebView': 'Chrome WebView',
498
+ 'HeadlessChrome': 'Chrome Headless',
499
+ 'OperaMobile': 'Opera Mobi',
500
+ };
471
501
  function resolveWindowsVersion(string) {
472
502
  if (string === undefined)
473
503
  return '';
@@ -642,6 +672,33 @@ function normalizeBrand(entry) {
642
672
  return { brand: entry, version: '' };
643
673
  return { brand: entry.brand, version: entry.version };
644
674
  }
675
+ function getSemanticVersion(string) {
676
+ var parts = string.split('.');
677
+ return {
678
+ major: parseInt(parts[0] || '0'),
679
+ minor: parseInt(parts[1] || '0'),
680
+ build: parseInt(parts[2] || '0')
681
+ };
682
+ }
683
+ function parseOSFromCordova() {
684
+ Platform.crossPlatformFramework = CrossPlatformFramework.Cordova;
685
+ if (typeof globalThis.device !== 'undefined') {
686
+ switch (globalThis.device.platform) {
687
+ case 'Android':
688
+ Platform.os = {
689
+ name: OS.Android,
690
+ version: globalThis.device.version,
691
+ };
692
+ break;
693
+ case 'iOS':
694
+ Platform.os = {
695
+ name: OS.iOS,
696
+ version: globalThis.device.version,
697
+ };
698
+ break;
699
+ }
700
+ }
701
+ }
645
702
  function getRenderer() {
646
703
  if (typeof globalThis.document === 'undefined')
647
704
  return '';
@@ -662,171 +719,293 @@ function getRenderer() {
662
719
  return '';
663
720
  }
664
721
  }
665
- function getIsStandalone(os) {
666
- if (!('matchMedia' in globalThis))
667
- return false;
668
- if (os === OS.iOS)
669
- return 'standalone' in navigator && !!navigator.standalone;
670
- return globalThis.matchMedia('(display-mode: standalone)').matches;
671
- }
672
- function getSemanticVersion(string) {
673
- var parts = string.split('.');
674
- return {
675
- major: parseInt(parts[0] || '0'),
676
- minor: parseInt(parts[1] || '0'),
677
- build: parseInt(parts[2] || '0')
722
+ function getNetwork() {
723
+ var network = {
724
+ isOnline: null,
725
+ effectiveType: null,
726
+ type: null,
727
+ downlink: null,
728
+ rtt: null,
729
+ saveData: null,
678
730
  };
679
- }
680
- if ((typeof globalThis.process !== 'undefined' && typeof globalThis.process.versions !== 'undefined' && globalThis.process.versions.electron !== undefined) || (/ electron\//i.test(USER_AGENT))) {
681
- Platform.crossPlatformFramework = CrossPlatformFramework.Electron;
682
- }
683
- if (typeof globalThis.navigator !== 'undefined' && globalThis.navigator.product === 'ReactNative') {
684
- Platform.crossPlatformFramework = CrossPlatformFramework.ReactNative;
685
- }
686
- for (var i = 0; i < OS_RESOLVER_MAP.length; i++) {
687
- var map = OS_RESOLVER_MAP[i];
688
- var regexp = map[0];
689
- var os = map[1];
690
- var resolver = map[2];
691
- var matched = Platform.userAgent.match(regexp);
692
- if (matched !== null) {
693
- Platform.os = os;
694
- Platform.osVersion = resolveVersion(matched[1], resolver);
695
- break;
731
+ if (typeof globalThis.navigator !== 'undefined') {
732
+ if (typeof globalThis.navigator.onLine !== 'undefined')
733
+ network.isOnline = globalThis.navigator.onLine;
734
+ var connection = globalThis.navigator.connection || globalThis.navigator.mozConnection || globalThis.navigator.webkitConnection;
735
+ if (typeof connection !== 'undefined') {
736
+ if (typeof connection.effectiveType !== 'undefined')
737
+ network.effectiveType = connection.effectiveType;
738
+ if (typeof connection.type !== 'undefined')
739
+ network.type = connection.type;
740
+ if (typeof connection.downlink !== 'undefined')
741
+ network.downlink = connection.downlink;
742
+ if (typeof connection.rtt !== 'undefined')
743
+ network.rtt = connection.rtt;
744
+ if (typeof connection.saveData !== 'undefined')
745
+ network.saveData = connection.saveData;
746
+ }
696
747
  }
697
- }
698
- if (Platform.os === OS.iOS && compareVersion(Platform.osVersion, '18.6') === 0) {
699
- var version = /\) Version\/([\d.]+)/.exec(Platform.userAgent);
700
- if (version !== null && parseInt(version[1].substring(0, 2), 10) >= 26)
701
- Platform.osVersion = version[1];
702
- }
703
- for (var i = 0; i < ENGINE_RESOLVER_MAP.length; i++) {
704
- var map = ENGINE_RESOLVER_MAP[i];
705
- var regexp = map[0];
706
- var engine = map[1];
707
- var resolver = map[2];
708
- var matched = Platform.userAgent.match(regexp);
709
- if (matched !== null) {
710
- Platform.engine = engine;
711
- Platform.engineVersion = resolveVersion(matched[1], resolver);
712
- break;
748
+ if (Platform.isNode) {
749
+ try {
750
+ var os = require('os');
751
+ var networkInterfaces = os.networkInterfaces();
752
+ var networkInterfaceNames = Object.keys(networkInterfaces);
753
+ for (var i = 0; i < networkInterfaceNames.length; i++) {
754
+ var name_1 = networkInterfaceNames[i];
755
+ var networkInterface = networkInterfaces[name_1];
756
+ for (var j = 0; j < networkInterface.length; j++) {
757
+ var address = networkInterface[j];
758
+ if (!address.internal && address.family === 'IPv4')
759
+ network.isOnline = true;
760
+ }
761
+ if (network.isOnline)
762
+ break;
763
+ }
764
+ }
765
+ catch (_) {
766
+ }
767
+ try {
768
+ var childProcess = require('child_process');
769
+ if (Platform.os.name === OS.Windows) {
770
+ try {
771
+ var output = childProcess.execSync('netsh wlan show interfaces', { encoding: 'utf8', timeout: 5000 });
772
+ if (output.includes('State') && output.includes('connected'))
773
+ network.type = 'wifi';
774
+ }
775
+ catch (_) {
776
+ }
777
+ if (network.type === null) {
778
+ try {
779
+ var output = childProcess.execSync('ipconfig', { encoding: 'utf8', timeout: 5000 });
780
+ if (output.includes('Ethernet adapter'))
781
+ network.type = 'ethernet';
782
+ }
783
+ catch (_) {
784
+ }
785
+ }
786
+ if (network.type === null)
787
+ network.type = 'other';
788
+ }
789
+ else if (Platform.os.name === OS.MacOS) {
790
+ try {
791
+ var output = childProcess.execSync('networksetup -listallhardwareports', { encoding: 'utf8', timeout: 5000 });
792
+ var activeInterface = childProcess.execSync('route -n get default | grep interface', { encoding: 'utf8', timeout: 5000 });
793
+ if (activeInterface.includes('en0') && output.includes('Wi-Fi'))
794
+ network.type = 'wifi';
795
+ else if (activeInterface.includes('en') || output.includes('Ethernet'))
796
+ network.type = 'ethernet';
797
+ else
798
+ network.type = 'other';
799
+ }
800
+ catch (_) {
801
+ network.type = 'other';
802
+ }
803
+ }
804
+ }
805
+ catch (_) {
806
+ }
713
807
  }
808
+ return network;
714
809
  }
715
- for (var i = 0; i < BROWSER_RESOLVER_MAP.length; i++) {
716
- var map = BROWSER_RESOLVER_MAP[i];
717
- var regexp = map[0];
718
- var browser = map[1];
719
- var resolver = map[2];
720
- var matched = Platform.userAgent.match(regexp);
721
- if (matched !== null) {
722
- Platform.browser = browser;
723
- Platform.browserVersion = resolveVersion(matched[1], resolver);
724
- break;
725
- }
810
+ function canUseHighEntropyValues(navigator) {
811
+ return typeof globalThis.navigator !== 'undefined' && typeof navigator.userAgentData !== 'undefined' && typeof navigator.userAgentData.getHighEntropyValues !== 'undefined';
726
812
  }
727
- if (Platform.crossPlatformFramework === CrossPlatformFramework.ReactNative) {
728
- try {
729
- var reactNative = require('react-native');
730
- var platform = reactNative.Platform;
731
- var os = platform.OS;
732
- var release = '' + platform.Version;
733
- var version = getSemanticVersion(release);
734
- switch (os) {
735
- case 'android':
736
- Platform.os = OS.Android;
737
- Platform.osVersion = resolveSemanticAndroidVersion(version, release);
738
- break;
739
- case 'ios':
740
- Platform.os = OS.iOS;
741
- Platform.osVersion = release;
742
- break;
743
- case 'windows':
744
- Platform.os = OS.Windows;
745
- Platform.osVersion = resolveSemanticWindowsVersion(version, release);
746
- break;
747
- case 'macos':
748
- Platform.os = OS.MacOS;
749
- Platform.osVersion = release;
750
- break;
813
+ function init() {
814
+ if ((typeof globalThis.process !== 'undefined' && typeof globalThis.process.versions !== 'undefined' && globalThis.process.versions.electron !== undefined) || (/ electron\//i.test(USER_AGENT)))
815
+ Platform.crossPlatformFramework = CrossPlatformFramework.Electron;
816
+ if (typeof globalThis.navigator !== 'undefined' && globalThis.navigator.product === 'ReactNative')
817
+ Platform.crossPlatformFramework = CrossPlatformFramework.ReactNative;
818
+ for (var i = 0; i < OS_RESOLVER_MAP.length; i++) {
819
+ var map = OS_RESOLVER_MAP[i];
820
+ var regexp = map[0];
821
+ var os = map[1];
822
+ var resolver = map[2];
823
+ var matched = Platform.userAgent.match(regexp);
824
+ if (matched !== null) {
825
+ Platform.os = {
826
+ name: os,
827
+ version: resolveVersion(matched[1], resolver),
828
+ };
829
+ break;
751
830
  }
752
831
  }
753
- catch (_) {
832
+ if (Platform.os.name === OS.iOS && compareVersion(Platform.os.version, '18.6') === 0) {
833
+ var version = /\) Version\/([\d.]+)/.exec(Platform.userAgent);
834
+ if (version !== null && parseInt(version[1].substring(0, 2), 10) >= 26)
835
+ Platform.os.version = version[1];
754
836
  }
755
- }
756
- if (Platform.isNode) {
757
- try {
758
- var os = require('os');
759
- var platform = os.platform();
760
- var release = os.release();
761
- var version = getSemanticVersion(release);
762
- switch (platform) {
763
- case 'win32':
764
- Platform.os = OS.Windows;
765
- Platform.osVersion = resolveSemanticWindowsVersion(version, release);
766
- break;
767
- case 'darwin':
768
- Platform.os = OS.MacOS;
769
- Platform.osVersion = resolveSemanticDarwinVersion(version, release);
770
- break;
771
- case 'android':
772
- Platform.os = OS.Android;
773
- Platform.osVersion = release;
774
- break;
775
- case 'linux':
776
- if (/android/i.test(release)) {
777
- Platform.os = OS.Android;
778
- Platform.osVersion = release;
779
- }
780
- break;
837
+ for (var i = 0; i < ENGINE_RESOLVER_MAP.length; i++) {
838
+ var map = ENGINE_RESOLVER_MAP[i];
839
+ var regexp = map[0];
840
+ var engine = map[1];
841
+ var resolver = map[2];
842
+ var matched = Platform.userAgent.match(regexp);
843
+ if (matched !== null) {
844
+ Platform.engine = {
845
+ name: engine,
846
+ version: resolveVersion(matched[1], resolver),
847
+ };
848
+ break;
781
849
  }
782
850
  }
783
- catch (_) {
851
+ for (var i = 0; i < BROWSER_RESOLVER_MAP.length; i++) {
852
+ var map = BROWSER_RESOLVER_MAP[i];
853
+ var regexp = map[0];
854
+ var browser = map[1];
855
+ var resolver = map[2];
856
+ var matched = Platform.userAgent.match(regexp);
857
+ if (matched !== null) {
858
+ Platform.browser = {
859
+ name: browser,
860
+ version: resolveVersion(matched[1], resolver),
861
+ };
862
+ break;
863
+ }
784
864
  }
785
- }
786
- if (typeof globalThis.document !== 'undefined') {
787
- globalThis.document.addEventListener("deviceready", function () {
788
- Platform.crossPlatformFramework = CrossPlatformFramework.Cordova;
789
- if (Platform.os === OS.Unknown && typeof globalThis.device !== 'undefined') {
790
- switch (globalThis.device.platform) {
791
- case 'Android':
792
- Platform.os = OS.Android;
865
+ if (Platform.crossPlatformFramework === CrossPlatformFramework.ReactNative) {
866
+ try {
867
+ var reactNative = require('react-native');
868
+ var platform = reactNative.Platform;
869
+ var os = platform.OS;
870
+ var release = '' + platform.Version;
871
+ var version = getSemanticVersion(release);
872
+ switch (os) {
873
+ case 'android':
874
+ Platform.os = {
875
+ name: OS.Android,
876
+ version: resolveSemanticAndroidVersion(version, release),
877
+ };
793
878
  break;
794
- case 'iOS':
795
- Platform.os = OS.iOS;
879
+ case 'ios':
880
+ Platform.os = {
881
+ name: OS.iOS,
882
+ version: release,
883
+ };
884
+ break;
885
+ case 'windows':
886
+ Platform.os = {
887
+ name: OS.Windows,
888
+ version: resolveSemanticWindowsVersion(version, release),
889
+ };
890
+ break;
891
+ case 'macos':
892
+ Platform.os = {
893
+ name: OS.MacOS,
894
+ version: release,
895
+ };
796
896
  break;
797
897
  }
798
- Platform.osVersion = globalThis.device.version;
799
898
  }
800
- }, false);
801
- }
802
- if (navigator.userAgentData !== undefined && navigator.userAgentData.getHighEntropyValues !== undefined) {
803
- navigator
804
- .userAgentData
805
- .getHighEntropyValues(['brands', 'fullVersionList', 'mobile', 'model', 'platform', 'platformVersion', 'architecture', 'formFactors', 'bitness', 'uaFullVersion', 'wow64'])
806
- .then(function (result) {
807
- var brands = result.fullVersionList || result.brands || [];
808
- var platformVersion = result.platformVersion;
809
- for (var i = 0; i < brands.length; i++) {
810
- var brand = normalizeBrand(brands[i]);
811
- var brandName = brand.brand;
812
- var brandVersion = brand.version;
813
- if (/not.a.brand/i.test(brandName))
814
- continue;
815
- if (brandName === "Chromium")
816
- Platform.engineVersion = brandVersion;
899
+ catch (_) {
817
900
  }
818
- if (typeof platformVersion === 'string') {
819
- if (Platform.os === OS.Windows && parseInt(platformVersion.replace(/[^\d.]/g, '').split('.')[0], 10) >= 13)
820
- Platform.osVersion = '11';
821
- else
822
- Platform.osVersion = platformVersion;
901
+ finally {
823
902
  }
824
- });
903
+ }
904
+ if (Platform.isNode) {
905
+ try {
906
+ var os = require('os');
907
+ var platform = os.platform();
908
+ var release = os.release();
909
+ var version = getSemanticVersion(release);
910
+ switch (platform) {
911
+ case 'win32':
912
+ Platform.os = {
913
+ name: OS.Windows,
914
+ version: resolveSemanticWindowsVersion(version, release),
915
+ };
916
+ break;
917
+ case 'darwin':
918
+ Platform.os = {
919
+ name: OS.MacOS,
920
+ version: resolveSemanticDarwinVersion(version, release),
921
+ };
922
+ break;
923
+ case 'android':
924
+ Platform.os = {
925
+ name: OS.Android,
926
+ version: release,
927
+ };
928
+ break;
929
+ case 'linux':
930
+ if (/android/i.test(release)) {
931
+ Platform.os = {
932
+ name: OS.Android,
933
+ version: release,
934
+ };
935
+ }
936
+ break;
937
+ }
938
+ }
939
+ catch (_) {
940
+ }
941
+ finally {
942
+ }
943
+ }
944
+ if (typeof globalThis.document !== 'undefined') {
945
+ if (typeof globalThis.device !== 'undefined') {
946
+ parseOSFromCordova();
947
+ }
948
+ else {
949
+ globalThis.document.addEventListener("deviceready", parseOSFromCordova, false);
950
+ }
951
+ }
952
+ if (canUseHighEntropyValues(globalThis.navigator)) {
953
+ globalThis
954
+ .navigator
955
+ .userAgentData
956
+ .getHighEntropyValues(['brands', 'fullVersionList', 'mobile', 'model', 'platform', 'platformVersion', 'architecture', 'formFactors', 'bitness', 'uaFullVersion', 'wow64'])
957
+ .then(function (result) {
958
+ var brands = result.fullVersionList || result.brands || [];
959
+ var platformVersion = result.platformVersion;
960
+ var platform = result.platform;
961
+ var browserName = Platform.browser.name;
962
+ var prevBrandName = null;
963
+ for (var i = 0; i < brands.length; i++) {
964
+ var brand = normalizeBrand(brands[i]);
965
+ var brandVersion = brand.version;
966
+ var brandName = brand.brand;
967
+ if (/not.a.brand/i.test(brandName))
968
+ continue;
969
+ if (prevBrandName === null || (/Chrom/.test(prevBrandName) && brandName !== 'Chromium') || (prevBrandName === 'Edge' && /WebView2/.test(brandName))) {
970
+ brandName = HIGH_ENTROPY_BRAND_NAME_MAP[brandName] || brandName;
971
+ prevBrandName = browserName;
972
+ if (prevBrandName === null || /Chrom/.test(prevBrandName) || !/Chrom/.test(brandName)) {
973
+ browserName = brandName;
974
+ if (browserName === 'Chrome' || browserName === 'Chrome WebView' || browserName === 'Chrome Headless')
975
+ Platform.browser.name = Browsers.Chrome;
976
+ else if (browserName === 'Edge' || browserName === 'Edge WebView2')
977
+ Platform.browser.name = Browsers.Edge;
978
+ else if (browserName === 'Opera Mobi')
979
+ Platform.browser.name = Browsers.Opera;
980
+ Platform.browser.version = brandVersion;
981
+ }
982
+ prevBrandName = brandName;
983
+ }
984
+ if (brandName === 'Chromium')
985
+ Platform.engine.version = brandVersion;
986
+ }
987
+ if (typeof platformVersion === 'string') {
988
+ if (Platform.os.name === OS.Windows)
989
+ Platform.os.version = parseInt(platformVersion.split('.')[0], 10) >= 13 ? '11' : '10';
990
+ else
991
+ Platform.os.version = platformVersion;
992
+ }
993
+ if (typeof platform === 'string') {
994
+ if (/android/i.test(platform))
995
+ Platform.os.name = OS.Android;
996
+ else if (/ios|iphone|ipad/i.test(platform))
997
+ Platform.os.name = OS.iOS;
998
+ else if (/windows|win32/i.test(platform))
999
+ Platform.os.name = OS.Windows;
1000
+ else if (/macos|macintel/i.test(platform))
1001
+ Platform.os.name = OS.MacOS;
1002
+ }
1003
+ if (result.mobile === true)
1004
+ Platform.device = Devices.Mobile;
1005
+ });
1006
+ }
825
1007
  }
826
- Platform.device = Platform.os === OS.iOS || Platform.os === OS.Android ? Devices.Mobile : Platform.os === OS.Windows || Platform.os === OS.MacOS ? Devices.Desktop : Devices.Unknown;
827
- Platform.isMobile = Platform.device === Devices.Mobile;
828
- Platform.isDesktop = Platform.device === Devices.Desktop;
829
- Platform.isStandalone = getIsStandalone(Platform.os);
1008
+ init();
830
1009
 
831
1010
  var _a;
832
1011
  var App = {
@@ -949,26 +1128,26 @@ function getDefaultTimeoutByOS(os) {
949
1128
  }
950
1129
  }
951
1130
  function canOpenIntentURL() {
952
- if (Platform.os !== OS.Android)
1131
+ if (Platform.os.name !== OS.Android)
953
1132
  return false;
954
- if (Platform.browser === Browsers.SamsungInternet && compareVersion(Platform.browserVersion, '17.0.1.69') >= 0 && compareVersion(Platform.browserVersion, '17.0.7.34') < 0)
1133
+ if (Platform.browser.name === Browsers.SamsungInternet && compareVersion(Platform.browser.version, '17.0.1.69') >= 0 && compareVersion(Platform.browser.version, '17.0.7.34') < 0)
955
1134
  return false;
956
- if (Platform.browser === Browsers.Firefox && compareVersion(Platform.browserVersion, '41.0') < 0)
1135
+ if (Platform.browser.name === Browsers.Firefox && compareVersion(Platform.browser.version, '41.0') < 0)
957
1136
  return false;
958
- if (Platform.browser === Browsers.Firefox && compareVersion(Platform.browserVersion, '58.0') >= 0 && compareVersion(Platform.browserVersion, '68.11.0') < 0)
1137
+ if (Platform.browser.name === Browsers.Firefox && compareVersion(Platform.browser.version, '58.0') >= 0 && compareVersion(Platform.browser.version, '68.11.0') < 0)
959
1138
  return false;
960
- if (Platform.browser === Browsers.Firefox && compareVersion(Platform.browserVersion, '79.0') >= 0 && compareVersion(Platform.browserVersion, '81.2.0') < 0)
1139
+ if (Platform.browser.name === Browsers.Firefox && compareVersion(Platform.browser.version, '79.0') >= 0 && compareVersion(Platform.browser.version, '81.2.0') < 0)
961
1140
  return false;
962
- if (Platform.browser === Browsers.Firefox && compareVersion(Platform.browserVersion, '96.0') >= 0 && compareVersion(Platform.browserVersion, '107.0') < 0)
1141
+ if (Platform.browser.name === Browsers.Firefox && compareVersion(Platform.browser.version, '96.0') >= 0 && compareVersion(Platform.browser.version, '107.0') < 0)
963
1142
  return false;
964
- if (Platform.browser === Browsers.Opera && compareVersion(Platform.browserVersion, '14.0') < 0)
1143
+ if (Platform.browser.name === Browsers.Opera && compareVersion(Platform.browser.version, '14.0') < 0)
965
1144
  return false;
966
1145
  if (/(?:fban\/fbios|fb_iab\/fb4a)(?!.+fbav)|;fbav\/[\w.]+;/i.test(Platform.userAgent) || /instagram[\/ ][-\w.]+/i.test(Platform.userAgent) || /micromessenger\/([\w.]+)/i.test(Platform.userAgent) || /musical_ly(?:.+app_?version\/|_)[\w.]+/i.test(Platform.userAgent) || /ultralite app_version\/[\w.]+/i.test(Platform.userAgent))
967
1146
  return false;
968
1147
  return true;
969
1148
  }
970
1149
  function canOpenUniversalURL() {
971
- return Platform.os === OS.iOS && compareVersion(Platform.osVersion, '9.0') >= 0;
1150
+ return Platform.os.name === OS.iOS && compareVersion(Platform.os.version, '9.0') >= 0;
972
1151
  }
973
1152
  function getURLOpenError(tried) {
974
1153
  var triedURLString = '';
@@ -1166,8 +1345,8 @@ function tryOpenURL(url, index, timeout) {
1166
1345
  eventTarget = { focus: topDocument, blur: topDocument };
1167
1346
  eventType = { focus: 'resume', blur: 'pause' };
1168
1347
  }
1169
- else if (Platform.os === OS.iOS) {
1170
- if (compareVersion(Platform.osVersion, '8.0') >= 0) {
1348
+ else if (Platform.os.name === OS.iOS) {
1349
+ if (compareVersion(Platform.os.version, '8.0') >= 0) {
1171
1350
  eventTarget = { visibilitychange: topDocument };
1172
1351
  eventType = { visibilitychange: 'visibilitychange' };
1173
1352
  }
@@ -1270,12 +1449,12 @@ function tryOpenURL(url, index, timeout) {
1270
1449
  });
1271
1450
  }
1272
1451
  function open(options) {
1273
- var os = Platform.os;
1452
+ var os = Platform.os.name;
1274
1453
  var urls = [];
1275
1454
  var tried = [];
1276
1455
  var infos = {};
1277
1456
  var timeout;
1278
- if (Platform.os === OS.Android) {
1457
+ if (Platform.os.name === OS.Android) {
1279
1458
  var option = options[OS.Android] || options['android'];
1280
1459
  if (option === undefined)
1281
1460
  return Promise.reject(getURLOpenError(tried));
@@ -1300,7 +1479,7 @@ function open(options) {
1300
1479
  if (infos.scheme !== undefined && infos.intent === undefined)
1301
1480
  infos.intent = createIntentURL(infos.scheme, infos.packageName, infos.fallback);
1302
1481
  }
1303
- else if (Platform.os === OS.iOS) {
1482
+ else if (Platform.os.name === OS.iOS) {
1304
1483
  var option = options[OS.iOS] || options['ios'];
1305
1484
  if (option === undefined)
1306
1485
  return Promise.reject(getURLOpenError(tried));
@@ -1317,7 +1496,7 @@ function open(options) {
1317
1496
  if (infos.bundleId !== undefined && infos.trackId === undefined)
1318
1497
  infos.trackId = getTrackId(infos.bundleId);
1319
1498
  }
1320
- else if (Platform.os === OS.Windows) {
1499
+ else if (Platform.os.name === OS.Windows) {
1321
1500
  var option = options[OS.Windows] || options['windows'];
1322
1501
  if (option === undefined)
1323
1502
  return Promise.reject(getURLOpenError(tried));
@@ -1330,7 +1509,7 @@ function open(options) {
1330
1509
  infos.allowAppStore = option.allowAppStore;
1331
1510
  infos.allowWebStore = option.allowWebStore;
1332
1511
  }
1333
- else if (Platform.os === OS.MacOS) {
1512
+ else if (Platform.os.name === OS.MacOS) {
1334
1513
  var option = options[OS.MacOS] || options['mac'];
1335
1514
  if (option === undefined)
1336
1515
  return Promise.reject(getURLOpenError(tried));
@@ -1512,7 +1691,7 @@ function openMessenger(options, type) {
1512
1691
  + '?cc=' + options.cc
1513
1692
  + '&bcc=' + options.bcc
1514
1693
  + '&subject=' + options.subject
1515
- + '&body=' + options.body, 0, getDefaultTimeoutByOS(Platform.os));
1694
+ + '&body=' + options.body, 0, getDefaultTimeoutByOS(Platform.os.name));
1516
1695
  }
1517
1696
  function openMessengerTelephone(options) {
1518
1697
  return openMessenger(options, 'tel');