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.
- package/dist/index.d.ts +5 -5
- package/dist/native.cjs +1 -1
- package/dist/native.min.cjs +1 -1
- package/dist/native.min.mjs +1 -1
- package/dist/native.mjs +1 -1
- package/dist/native.umd.js +1 -1
- package/dist/native.umd.min.js +1 -1
- package/dist/plugin/app/index.cjs +355 -176
- package/dist/plugin/app/index.min.cjs +1 -1
- package/dist/plugin/app/index.min.mjs +1 -1
- package/dist/plugin/app/index.mjs +355 -176
- package/dist/plugin/app/index.umd.js +355 -176
- package/dist/plugin/app/index.umd.min.js +1 -1
- package/dist/plugin/app/src/plugin/platform/cores/index.d.ts +12 -0
- package/dist/plugin/app/src/plugin/platform/types/platform.d.ts +16 -6
- package/dist/plugin/app/src/types/native.d.ts +5 -5
- package/dist/plugin/appearance/index.cjs +344 -165
- package/dist/plugin/appearance/index.min.cjs +1 -1
- package/dist/plugin/appearance/index.min.mjs +1 -1
- package/dist/plugin/appearance/index.mjs +344 -165
- package/dist/plugin/appearance/index.umd.js +344 -165
- package/dist/plugin/appearance/index.umd.min.js +1 -1
- package/dist/plugin/appearance/src/plugin/platform/cores/index.d.ts +12 -0
- package/dist/plugin/appearance/src/plugin/platform/types/platform.d.ts +16 -6
- package/dist/plugin/appearance/src/types/native.d.ts +5 -5
- package/dist/plugin/clipboard/index.cjs +339 -160
- package/dist/plugin/clipboard/index.min.cjs +1 -1
- package/dist/plugin/clipboard/index.min.mjs +1 -1
- package/dist/plugin/clipboard/index.mjs +339 -160
- package/dist/plugin/clipboard/index.umd.js +339 -160
- package/dist/plugin/clipboard/index.umd.min.js +1 -1
- package/dist/plugin/clipboard/src/plugin/platform/cores/index.d.ts +12 -0
- package/dist/plugin/clipboard/src/plugin/platform/types/platform.d.ts +16 -6
- package/dist/plugin/clipboard/src/types/native.d.ts +5 -5
- package/dist/plugin/fullscreen/index.cjs +348 -169
- package/dist/plugin/fullscreen/index.min.cjs +1 -1
- package/dist/plugin/fullscreen/index.min.mjs +1 -1
- package/dist/plugin/fullscreen/index.mjs +348 -169
- package/dist/plugin/fullscreen/index.umd.js +348 -169
- package/dist/plugin/fullscreen/index.umd.min.js +1 -1
- package/dist/plugin/fullscreen/src/plugin/platform/cores/index.d.ts +12 -0
- package/dist/plugin/fullscreen/src/plugin/platform/types/platform.d.ts +16 -6
- package/dist/plugin/fullscreen/src/types/native.d.ts +5 -5
- package/dist/plugin/platform/index.cjs +339 -160
- package/dist/plugin/platform/index.d.ts +17 -7
- package/dist/plugin/platform/index.min.cjs +1 -1
- package/dist/plugin/platform/index.min.mjs +1 -1
- package/dist/plugin/platform/index.mjs +339 -160
- package/dist/plugin/platform/index.umd.js +339 -160
- package/dist/plugin/platform/index.umd.min.js +1 -1
- package/dist/plugin/platform/src/plugin/platform/cores/index.d.ts +12 -0
- package/dist/plugin/platform/src/plugin/platform/types/platform.d.ts +16 -6
- package/dist/plugin/platform/src/types/native.d.ts +5 -5
- package/dist/plugin/theme/index.cjs +339 -160
- package/dist/plugin/theme/index.min.cjs +1 -1
- package/dist/plugin/theme/index.min.mjs +1 -1
- package/dist/plugin/theme/index.mjs +339 -160
- package/dist/plugin/theme/index.umd.js +339 -160
- package/dist/plugin/theme/index.umd.min.js +1 -1
- package/dist/plugin/theme/src/plugin/platform/cores/index.d.ts +12 -0
- package/dist/plugin/theme/src/plugin/platform/types/platform.d.ts +16 -6
- package/dist/plugin/theme/src/types/native.d.ts +5 -5
- package/dist/src/plugin/platform/cores/index.d.ts +12 -0
- package/dist/src/plugin/platform/types/platform.d.ts +16 -6
- package/dist/src/types/native.d.ts +5 -5
- package/package.json +1 -1
|
@@ -281,21 +281,43 @@ var CrossPlatformFramework;
|
|
|
281
281
|
var USER_AGENT = typeof globalThis.navigator !== 'undefined' && typeof globalThis.navigator.userAgent === 'string' ? globalThis.navigator.userAgent : '';
|
|
282
282
|
|
|
283
283
|
var Platform = {
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
browser: Browsers.Unknown,
|
|
284
|
+
os: { name: OS.Unknown, version: '' },
|
|
285
|
+
engine: { name: Engines.Unknown, version: '' },
|
|
286
|
+
browser: { name: Browsers.Unknown, version: '' },
|
|
288
287
|
crossPlatformFramework: CrossPlatformFramework.Unknown,
|
|
289
|
-
osVersion: '',
|
|
290
|
-
engineVersion: '',
|
|
291
|
-
browserVersion: '',
|
|
292
|
-
renderer: getRenderer(),
|
|
293
288
|
userAgent: USER_AGENT,
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
289
|
+
get network() {
|
|
290
|
+
return getNetwork();
|
|
291
|
+
},
|
|
292
|
+
get device() {
|
|
293
|
+
if (this.os.name === OS.iOS || this.os.name === OS.Android)
|
|
294
|
+
return Devices.Mobile;
|
|
295
|
+
if (this.os.name === OS.Windows || this.os.name === OS.MacOS)
|
|
296
|
+
return Devices.Desktop;
|
|
297
|
+
return Devices.Unknown;
|
|
298
|
+
},
|
|
299
|
+
get renderer() {
|
|
300
|
+
return getRenderer();
|
|
301
|
+
},
|
|
302
|
+
get isMobile() {
|
|
303
|
+
return this.device === Devices.Mobile;
|
|
304
|
+
},
|
|
305
|
+
get isDesktop() {
|
|
306
|
+
return this.device === Devices.Desktop;
|
|
307
|
+
},
|
|
308
|
+
get isWebview() {
|
|
309
|
+
return /; ?wv|applewebkit(?!.*safari)/i.test(this.userAgent);
|
|
310
|
+
},
|
|
311
|
+
get isNode() {
|
|
312
|
+
return typeof globalThis.process !== 'undefined' && typeof globalThis.process.versions !== 'undefined' && globalThis.process.versions.node !== undefined;
|
|
313
|
+
},
|
|
314
|
+
get isStandalone() {
|
|
315
|
+
if (this.os.name === OS.iOS)
|
|
316
|
+
return 'standalone' in globalThis.navigator && !!globalThis.navigator.standalone;
|
|
317
|
+
if (!('matchMedia' in globalThis))
|
|
318
|
+
return false;
|
|
319
|
+
return globalThis.matchMedia('(display-mode: standalone)').matches;
|
|
320
|
+
},
|
|
299
321
|
};
|
|
300
322
|
var OS_RESOLVER_MAP = [
|
|
301
323
|
[/windows nt (6\.[23]); arm/i, OS.Windows, resolveWindowsVersion],
|
|
@@ -355,6 +377,14 @@ var BROWSER_RESOLVER_MAP = [
|
|
|
355
377
|
[/mobile vr; rv:([\w.]+)\).+firefox/i, Browsers.Firefox],
|
|
356
378
|
[/firefox\/([\w.]+)/i, Browsers.Firefox],
|
|
357
379
|
];
|
|
380
|
+
var HIGH_ENTROPY_BRAND_NAME_MAP = {
|
|
381
|
+
'Google Chrome': 'Chrome',
|
|
382
|
+
'Microsoft Edge': 'Edge',
|
|
383
|
+
'Microsoft Edge WebView2': 'Edge WebView2',
|
|
384
|
+
'Android WebView': 'Chrome WebView',
|
|
385
|
+
'HeadlessChrome': 'Chrome Headless',
|
|
386
|
+
'OperaMobile': 'Opera Mobi',
|
|
387
|
+
};
|
|
358
388
|
function resolveWindowsVersion(string) {
|
|
359
389
|
if (string === undefined)
|
|
360
390
|
return '';
|
|
@@ -529,6 +559,33 @@ function normalizeBrand(entry) {
|
|
|
529
559
|
return { brand: entry, version: '' };
|
|
530
560
|
return { brand: entry.brand, version: entry.version };
|
|
531
561
|
}
|
|
562
|
+
function getSemanticVersion(string) {
|
|
563
|
+
var parts = string.split('.');
|
|
564
|
+
return {
|
|
565
|
+
major: parseInt(parts[0] || '0'),
|
|
566
|
+
minor: parseInt(parts[1] || '0'),
|
|
567
|
+
build: parseInt(parts[2] || '0')
|
|
568
|
+
};
|
|
569
|
+
}
|
|
570
|
+
function parseOSFromCordova() {
|
|
571
|
+
Platform.crossPlatformFramework = CrossPlatformFramework.Cordova;
|
|
572
|
+
if (typeof globalThis.device !== 'undefined') {
|
|
573
|
+
switch (globalThis.device.platform) {
|
|
574
|
+
case 'Android':
|
|
575
|
+
Platform.os = {
|
|
576
|
+
name: OS.Android,
|
|
577
|
+
version: globalThis.device.version,
|
|
578
|
+
};
|
|
579
|
+
break;
|
|
580
|
+
case 'iOS':
|
|
581
|
+
Platform.os = {
|
|
582
|
+
name: OS.iOS,
|
|
583
|
+
version: globalThis.device.version,
|
|
584
|
+
};
|
|
585
|
+
break;
|
|
586
|
+
}
|
|
587
|
+
}
|
|
588
|
+
}
|
|
532
589
|
function getRenderer() {
|
|
533
590
|
if (typeof globalThis.document === 'undefined')
|
|
534
591
|
return '';
|
|
@@ -549,171 +606,293 @@ function getRenderer() {
|
|
|
549
606
|
return '';
|
|
550
607
|
}
|
|
551
608
|
}
|
|
552
|
-
function
|
|
553
|
-
|
|
554
|
-
|
|
555
|
-
|
|
556
|
-
|
|
557
|
-
|
|
558
|
-
|
|
559
|
-
|
|
560
|
-
var parts = string.split('.');
|
|
561
|
-
return {
|
|
562
|
-
major: parseInt(parts[0] || '0'),
|
|
563
|
-
minor: parseInt(parts[1] || '0'),
|
|
564
|
-
build: parseInt(parts[2] || '0')
|
|
609
|
+
function getNetwork() {
|
|
610
|
+
var network = {
|
|
611
|
+
isOnline: null,
|
|
612
|
+
effectiveType: null,
|
|
613
|
+
type: null,
|
|
614
|
+
downlink: null,
|
|
615
|
+
rtt: null,
|
|
616
|
+
saveData: null,
|
|
565
617
|
};
|
|
566
|
-
|
|
567
|
-
if (
|
|
568
|
-
|
|
569
|
-
|
|
570
|
-
if (typeof
|
|
571
|
-
|
|
572
|
-
|
|
573
|
-
|
|
574
|
-
|
|
575
|
-
|
|
576
|
-
|
|
577
|
-
|
|
578
|
-
|
|
579
|
-
|
|
580
|
-
|
|
581
|
-
|
|
582
|
-
break;
|
|
618
|
+
if (typeof globalThis.navigator !== 'undefined') {
|
|
619
|
+
if (typeof globalThis.navigator.onLine !== 'undefined')
|
|
620
|
+
network.isOnline = globalThis.navigator.onLine;
|
|
621
|
+
var connection = globalThis.navigator.connection || globalThis.navigator.mozConnection || globalThis.navigator.webkitConnection;
|
|
622
|
+
if (typeof connection !== 'undefined') {
|
|
623
|
+
if (typeof connection.effectiveType !== 'undefined')
|
|
624
|
+
network.effectiveType = connection.effectiveType;
|
|
625
|
+
if (typeof connection.type !== 'undefined')
|
|
626
|
+
network.type = connection.type;
|
|
627
|
+
if (typeof connection.downlink !== 'undefined')
|
|
628
|
+
network.downlink = connection.downlink;
|
|
629
|
+
if (typeof connection.rtt !== 'undefined')
|
|
630
|
+
network.rtt = connection.rtt;
|
|
631
|
+
if (typeof connection.saveData !== 'undefined')
|
|
632
|
+
network.saveData = connection.saveData;
|
|
633
|
+
}
|
|
583
634
|
}
|
|
584
|
-
|
|
585
|
-
|
|
586
|
-
|
|
587
|
-
|
|
588
|
-
|
|
589
|
-
|
|
590
|
-
|
|
591
|
-
|
|
592
|
-
|
|
593
|
-
|
|
594
|
-
|
|
595
|
-
|
|
596
|
-
|
|
597
|
-
|
|
598
|
-
|
|
599
|
-
|
|
635
|
+
if (Platform.isNode) {
|
|
636
|
+
try {
|
|
637
|
+
var os = require('os');
|
|
638
|
+
var networkInterfaces = os.networkInterfaces();
|
|
639
|
+
var networkInterfaceNames = Object.keys(networkInterfaces);
|
|
640
|
+
for (var i = 0; i < networkInterfaceNames.length; i++) {
|
|
641
|
+
var name_1 = networkInterfaceNames[i];
|
|
642
|
+
var networkInterface = networkInterfaces[name_1];
|
|
643
|
+
for (var j = 0; j < networkInterface.length; j++) {
|
|
644
|
+
var address = networkInterface[j];
|
|
645
|
+
if (!address.internal && address.family === 'IPv4')
|
|
646
|
+
network.isOnline = true;
|
|
647
|
+
}
|
|
648
|
+
if (network.isOnline)
|
|
649
|
+
break;
|
|
650
|
+
}
|
|
651
|
+
}
|
|
652
|
+
catch (_) {
|
|
653
|
+
}
|
|
654
|
+
try {
|
|
655
|
+
var childProcess = require('child_process');
|
|
656
|
+
if (Platform.os.name === OS.Windows) {
|
|
657
|
+
try {
|
|
658
|
+
var output = childProcess.execSync('netsh wlan show interfaces', { encoding: 'utf8', timeout: 5000 });
|
|
659
|
+
if (output.includes('State') && output.includes('connected'))
|
|
660
|
+
network.type = 'wifi';
|
|
661
|
+
}
|
|
662
|
+
catch (_) {
|
|
663
|
+
}
|
|
664
|
+
if (network.type === null) {
|
|
665
|
+
try {
|
|
666
|
+
var output = childProcess.execSync('ipconfig', { encoding: 'utf8', timeout: 5000 });
|
|
667
|
+
if (output.includes('Ethernet adapter'))
|
|
668
|
+
network.type = 'ethernet';
|
|
669
|
+
}
|
|
670
|
+
catch (_) {
|
|
671
|
+
}
|
|
672
|
+
}
|
|
673
|
+
if (network.type === null)
|
|
674
|
+
network.type = 'other';
|
|
675
|
+
}
|
|
676
|
+
else if (Platform.os.name === OS.MacOS) {
|
|
677
|
+
try {
|
|
678
|
+
var output = childProcess.execSync('networksetup -listallhardwareports', { encoding: 'utf8', timeout: 5000 });
|
|
679
|
+
var activeInterface = childProcess.execSync('route -n get default | grep interface', { encoding: 'utf8', timeout: 5000 });
|
|
680
|
+
if (activeInterface.includes('en0') && output.includes('Wi-Fi'))
|
|
681
|
+
network.type = 'wifi';
|
|
682
|
+
else if (activeInterface.includes('en') || output.includes('Ethernet'))
|
|
683
|
+
network.type = 'ethernet';
|
|
684
|
+
else
|
|
685
|
+
network.type = 'other';
|
|
686
|
+
}
|
|
687
|
+
catch (_) {
|
|
688
|
+
network.type = 'other';
|
|
689
|
+
}
|
|
690
|
+
}
|
|
691
|
+
}
|
|
692
|
+
catch (_) {
|
|
693
|
+
}
|
|
600
694
|
}
|
|
695
|
+
return network;
|
|
601
696
|
}
|
|
602
|
-
|
|
603
|
-
|
|
604
|
-
var regexp = map[0];
|
|
605
|
-
var browser = map[1];
|
|
606
|
-
var resolver = map[2];
|
|
607
|
-
var matched = Platform.userAgent.match(regexp);
|
|
608
|
-
if (matched !== null) {
|
|
609
|
-
Platform.browser = browser;
|
|
610
|
-
Platform.browserVersion = resolveVersion(matched[1], resolver);
|
|
611
|
-
break;
|
|
612
|
-
}
|
|
697
|
+
function canUseHighEntropyValues(navigator) {
|
|
698
|
+
return typeof globalThis.navigator !== 'undefined' && typeof navigator.userAgentData !== 'undefined' && typeof navigator.userAgentData.getHighEntropyValues !== 'undefined';
|
|
613
699
|
}
|
|
614
|
-
|
|
615
|
-
|
|
616
|
-
|
|
617
|
-
|
|
618
|
-
|
|
619
|
-
|
|
620
|
-
var
|
|
621
|
-
|
|
622
|
-
|
|
623
|
-
|
|
624
|
-
|
|
625
|
-
|
|
626
|
-
|
|
627
|
-
|
|
628
|
-
|
|
629
|
-
|
|
630
|
-
|
|
631
|
-
Platform.os = OS.Windows;
|
|
632
|
-
Platform.osVersion = resolveSemanticWindowsVersion(version, release);
|
|
633
|
-
break;
|
|
634
|
-
case 'macos':
|
|
635
|
-
Platform.os = OS.MacOS;
|
|
636
|
-
Platform.osVersion = release;
|
|
637
|
-
break;
|
|
700
|
+
function init() {
|
|
701
|
+
if ((typeof globalThis.process !== 'undefined' && typeof globalThis.process.versions !== 'undefined' && globalThis.process.versions.electron !== undefined) || (/ electron\//i.test(USER_AGENT)))
|
|
702
|
+
Platform.crossPlatformFramework = CrossPlatformFramework.Electron;
|
|
703
|
+
if (typeof globalThis.navigator !== 'undefined' && globalThis.navigator.product === 'ReactNative')
|
|
704
|
+
Platform.crossPlatformFramework = CrossPlatformFramework.ReactNative;
|
|
705
|
+
for (var i = 0; i < OS_RESOLVER_MAP.length; i++) {
|
|
706
|
+
var map = OS_RESOLVER_MAP[i];
|
|
707
|
+
var regexp = map[0];
|
|
708
|
+
var os = map[1];
|
|
709
|
+
var resolver = map[2];
|
|
710
|
+
var matched = Platform.userAgent.match(regexp);
|
|
711
|
+
if (matched !== null) {
|
|
712
|
+
Platform.os = {
|
|
713
|
+
name: os,
|
|
714
|
+
version: resolveVersion(matched[1], resolver),
|
|
715
|
+
};
|
|
716
|
+
break;
|
|
638
717
|
}
|
|
639
718
|
}
|
|
640
|
-
|
|
719
|
+
if (Platform.os.name === OS.iOS && compareVersion(Platform.os.version, '18.6') === 0) {
|
|
720
|
+
var version = /\) Version\/([\d.]+)/.exec(Platform.userAgent);
|
|
721
|
+
if (version !== null && parseInt(version[1].substring(0, 2), 10) >= 26)
|
|
722
|
+
Platform.os.version = version[1];
|
|
641
723
|
}
|
|
642
|
-
|
|
643
|
-
|
|
644
|
-
|
|
645
|
-
var
|
|
646
|
-
var
|
|
647
|
-
var
|
|
648
|
-
|
|
649
|
-
|
|
650
|
-
|
|
651
|
-
|
|
652
|
-
|
|
653
|
-
|
|
654
|
-
case 'darwin':
|
|
655
|
-
Platform.os = OS.MacOS;
|
|
656
|
-
Platform.osVersion = resolveSemanticDarwinVersion(version, release);
|
|
657
|
-
break;
|
|
658
|
-
case 'android':
|
|
659
|
-
Platform.os = OS.Android;
|
|
660
|
-
Platform.osVersion = release;
|
|
661
|
-
break;
|
|
662
|
-
case 'linux':
|
|
663
|
-
if (/android/i.test(release)) {
|
|
664
|
-
Platform.os = OS.Android;
|
|
665
|
-
Platform.osVersion = release;
|
|
666
|
-
}
|
|
667
|
-
break;
|
|
724
|
+
for (var i = 0; i < ENGINE_RESOLVER_MAP.length; i++) {
|
|
725
|
+
var map = ENGINE_RESOLVER_MAP[i];
|
|
726
|
+
var regexp = map[0];
|
|
727
|
+
var engine = map[1];
|
|
728
|
+
var resolver = map[2];
|
|
729
|
+
var matched = Platform.userAgent.match(regexp);
|
|
730
|
+
if (matched !== null) {
|
|
731
|
+
Platform.engine = {
|
|
732
|
+
name: engine,
|
|
733
|
+
version: resolveVersion(matched[1], resolver),
|
|
734
|
+
};
|
|
735
|
+
break;
|
|
668
736
|
}
|
|
669
737
|
}
|
|
670
|
-
|
|
738
|
+
for (var i = 0; i < BROWSER_RESOLVER_MAP.length; i++) {
|
|
739
|
+
var map = BROWSER_RESOLVER_MAP[i];
|
|
740
|
+
var regexp = map[0];
|
|
741
|
+
var browser = map[1];
|
|
742
|
+
var resolver = map[2];
|
|
743
|
+
var matched = Platform.userAgent.match(regexp);
|
|
744
|
+
if (matched !== null) {
|
|
745
|
+
Platform.browser = {
|
|
746
|
+
name: browser,
|
|
747
|
+
version: resolveVersion(matched[1], resolver),
|
|
748
|
+
};
|
|
749
|
+
break;
|
|
750
|
+
}
|
|
671
751
|
}
|
|
672
|
-
|
|
673
|
-
|
|
674
|
-
|
|
675
|
-
|
|
676
|
-
|
|
677
|
-
|
|
678
|
-
|
|
679
|
-
|
|
752
|
+
if (Platform.crossPlatformFramework === CrossPlatformFramework.ReactNative) {
|
|
753
|
+
try {
|
|
754
|
+
var reactNative = require('react-native');
|
|
755
|
+
var platform = reactNative.Platform;
|
|
756
|
+
var os = platform.OS;
|
|
757
|
+
var release = '' + platform.Version;
|
|
758
|
+
var version = getSemanticVersion(release);
|
|
759
|
+
switch (os) {
|
|
760
|
+
case 'android':
|
|
761
|
+
Platform.os = {
|
|
762
|
+
name: OS.Android,
|
|
763
|
+
version: resolveSemanticAndroidVersion(version, release),
|
|
764
|
+
};
|
|
765
|
+
break;
|
|
766
|
+
case 'ios':
|
|
767
|
+
Platform.os = {
|
|
768
|
+
name: OS.iOS,
|
|
769
|
+
version: release,
|
|
770
|
+
};
|
|
680
771
|
break;
|
|
681
|
-
case '
|
|
682
|
-
Platform.os =
|
|
772
|
+
case 'windows':
|
|
773
|
+
Platform.os = {
|
|
774
|
+
name: OS.Windows,
|
|
775
|
+
version: resolveSemanticWindowsVersion(version, release),
|
|
776
|
+
};
|
|
777
|
+
break;
|
|
778
|
+
case 'macos':
|
|
779
|
+
Platform.os = {
|
|
780
|
+
name: OS.MacOS,
|
|
781
|
+
version: release,
|
|
782
|
+
};
|
|
683
783
|
break;
|
|
684
784
|
}
|
|
685
|
-
Platform.osVersion = globalThis.device.version;
|
|
686
785
|
}
|
|
687
|
-
|
|
688
|
-
}
|
|
689
|
-
|
|
690
|
-
|
|
691
|
-
|
|
692
|
-
|
|
693
|
-
|
|
694
|
-
|
|
695
|
-
|
|
696
|
-
|
|
697
|
-
var
|
|
698
|
-
|
|
699
|
-
|
|
700
|
-
|
|
701
|
-
|
|
702
|
-
|
|
703
|
-
|
|
786
|
+
catch (_) {
|
|
787
|
+
}
|
|
788
|
+
finally {
|
|
789
|
+
}
|
|
790
|
+
}
|
|
791
|
+
if (Platform.isNode) {
|
|
792
|
+
try {
|
|
793
|
+
var os = require('os');
|
|
794
|
+
var platform = os.platform();
|
|
795
|
+
var release = os.release();
|
|
796
|
+
var version = getSemanticVersion(release);
|
|
797
|
+
switch (platform) {
|
|
798
|
+
case 'win32':
|
|
799
|
+
Platform.os = {
|
|
800
|
+
name: OS.Windows,
|
|
801
|
+
version: resolveSemanticWindowsVersion(version, release),
|
|
802
|
+
};
|
|
803
|
+
break;
|
|
804
|
+
case 'darwin':
|
|
805
|
+
Platform.os = {
|
|
806
|
+
name: OS.MacOS,
|
|
807
|
+
version: resolveSemanticDarwinVersion(version, release),
|
|
808
|
+
};
|
|
809
|
+
break;
|
|
810
|
+
case 'android':
|
|
811
|
+
Platform.os = {
|
|
812
|
+
name: OS.Android,
|
|
813
|
+
version: release,
|
|
814
|
+
};
|
|
815
|
+
break;
|
|
816
|
+
case 'linux':
|
|
817
|
+
if (/android/i.test(release)) {
|
|
818
|
+
Platform.os = {
|
|
819
|
+
name: OS.Android,
|
|
820
|
+
version: release,
|
|
821
|
+
};
|
|
822
|
+
}
|
|
823
|
+
break;
|
|
824
|
+
}
|
|
704
825
|
}
|
|
705
|
-
|
|
706
|
-
|
|
707
|
-
|
|
708
|
-
|
|
709
|
-
|
|
826
|
+
catch (_) {
|
|
827
|
+
}
|
|
828
|
+
finally {
|
|
829
|
+
}
|
|
830
|
+
}
|
|
831
|
+
if (typeof globalThis.document !== 'undefined') {
|
|
832
|
+
if (typeof globalThis.device !== 'undefined') {
|
|
833
|
+
parseOSFromCordova();
|
|
710
834
|
}
|
|
711
|
-
|
|
835
|
+
else {
|
|
836
|
+
globalThis.document.addEventListener("deviceready", parseOSFromCordova, false);
|
|
837
|
+
}
|
|
838
|
+
}
|
|
839
|
+
if (canUseHighEntropyValues(globalThis.navigator)) {
|
|
840
|
+
globalThis
|
|
841
|
+
.navigator
|
|
842
|
+
.userAgentData
|
|
843
|
+
.getHighEntropyValues(['brands', 'fullVersionList', 'mobile', 'model', 'platform', 'platformVersion', 'architecture', 'formFactors', 'bitness', 'uaFullVersion', 'wow64'])
|
|
844
|
+
.then(function (result) {
|
|
845
|
+
var brands = result.fullVersionList || result.brands || [];
|
|
846
|
+
var platformVersion = result.platformVersion;
|
|
847
|
+
var platform = result.platform;
|
|
848
|
+
var browserName = Platform.browser.name;
|
|
849
|
+
var prevBrandName = null;
|
|
850
|
+
for (var i = 0; i < brands.length; i++) {
|
|
851
|
+
var brand = normalizeBrand(brands[i]);
|
|
852
|
+
var brandVersion = brand.version;
|
|
853
|
+
var brandName = brand.brand;
|
|
854
|
+
if (/not.a.brand/i.test(brandName))
|
|
855
|
+
continue;
|
|
856
|
+
if (prevBrandName === null || (/Chrom/.test(prevBrandName) && brandName !== 'Chromium') || (prevBrandName === 'Edge' && /WebView2/.test(brandName))) {
|
|
857
|
+
brandName = HIGH_ENTROPY_BRAND_NAME_MAP[brandName] || brandName;
|
|
858
|
+
prevBrandName = browserName;
|
|
859
|
+
if (prevBrandName === null || /Chrom/.test(prevBrandName) || !/Chrom/.test(brandName)) {
|
|
860
|
+
browserName = brandName;
|
|
861
|
+
if (browserName === 'Chrome' || browserName === 'Chrome WebView' || browserName === 'Chrome Headless')
|
|
862
|
+
Platform.browser.name = Browsers.Chrome;
|
|
863
|
+
else if (browserName === 'Edge' || browserName === 'Edge WebView2')
|
|
864
|
+
Platform.browser.name = Browsers.Edge;
|
|
865
|
+
else if (browserName === 'Opera Mobi')
|
|
866
|
+
Platform.browser.name = Browsers.Opera;
|
|
867
|
+
Platform.browser.version = brandVersion;
|
|
868
|
+
}
|
|
869
|
+
prevBrandName = brandName;
|
|
870
|
+
}
|
|
871
|
+
if (brandName === 'Chromium')
|
|
872
|
+
Platform.engine.version = brandVersion;
|
|
873
|
+
}
|
|
874
|
+
if (typeof platformVersion === 'string') {
|
|
875
|
+
if (Platform.os.name === OS.Windows)
|
|
876
|
+
Platform.os.version = parseInt(platformVersion.split('.')[0], 10) >= 13 ? '11' : '10';
|
|
877
|
+
else
|
|
878
|
+
Platform.os.version = platformVersion;
|
|
879
|
+
}
|
|
880
|
+
if (typeof platform === 'string') {
|
|
881
|
+
if (/android/i.test(platform))
|
|
882
|
+
Platform.os.name = OS.Android;
|
|
883
|
+
else if (/ios|iphone|ipad/i.test(platform))
|
|
884
|
+
Platform.os.name = OS.iOS;
|
|
885
|
+
else if (/windows|win32/i.test(platform))
|
|
886
|
+
Platform.os.name = OS.Windows;
|
|
887
|
+
else if (/macos|macintel/i.test(platform))
|
|
888
|
+
Platform.os.name = OS.MacOS;
|
|
889
|
+
}
|
|
890
|
+
if (result.mobile === true)
|
|
891
|
+
Platform.device = Devices.Mobile;
|
|
892
|
+
});
|
|
893
|
+
}
|
|
712
894
|
}
|
|
713
|
-
|
|
714
|
-
Platform.isMobile = Platform.device === Devices.Mobile;
|
|
715
|
-
Platform.isDesktop = Platform.device === Devices.Desktop;
|
|
716
|
-
Platform.isStandalone = getIsStandalone(Platform.os);
|
|
895
|
+
init();
|
|
717
896
|
|
|
718
897
|
var Clipboard = {
|
|
719
898
|
copy: copy,
|