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