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.
- 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 +8 -1
|
@@ -104,21 +104,43 @@
|
|
|
104
104
|
var USER_AGENT = typeof globalThis.navigator !== 'undefined' && typeof globalThis.navigator.userAgent === 'string' ? globalThis.navigator.userAgent : '';
|
|
105
105
|
|
|
106
106
|
var Platform = {
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
browser: Browsers.Unknown,
|
|
107
|
+
os: { name: OS.Unknown, version: '' },
|
|
108
|
+
engine: { name: Engines.Unknown, version: '' },
|
|
109
|
+
browser: { name: Browsers.Unknown, version: '' },
|
|
111
110
|
crossPlatformFramework: CrossPlatformFramework.Unknown,
|
|
112
|
-
osVersion: '',
|
|
113
|
-
engineVersion: '',
|
|
114
|
-
browserVersion: '',
|
|
115
|
-
renderer: getRenderer(),
|
|
116
111
|
userAgent: USER_AGENT,
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
112
|
+
get network() {
|
|
113
|
+
return getNetwork();
|
|
114
|
+
},
|
|
115
|
+
get device() {
|
|
116
|
+
if (this.os.name === OS.iOS || this.os.name === OS.Android)
|
|
117
|
+
return Devices.Mobile;
|
|
118
|
+
if (this.os.name === OS.Windows || this.os.name === OS.MacOS)
|
|
119
|
+
return Devices.Desktop;
|
|
120
|
+
return Devices.Unknown;
|
|
121
|
+
},
|
|
122
|
+
get renderer() {
|
|
123
|
+
return getRenderer();
|
|
124
|
+
},
|
|
125
|
+
get isMobile() {
|
|
126
|
+
return this.device === Devices.Mobile;
|
|
127
|
+
},
|
|
128
|
+
get isDesktop() {
|
|
129
|
+
return this.device === Devices.Desktop;
|
|
130
|
+
},
|
|
131
|
+
get isWebview() {
|
|
132
|
+
return /; ?wv|applewebkit(?!.*safari)/i.test(this.userAgent);
|
|
133
|
+
},
|
|
134
|
+
get isNode() {
|
|
135
|
+
return typeof globalThis.process !== 'undefined' && typeof globalThis.process.versions !== 'undefined' && globalThis.process.versions.node !== undefined;
|
|
136
|
+
},
|
|
137
|
+
get isStandalone() {
|
|
138
|
+
if (this.os.name === OS.iOS)
|
|
139
|
+
return 'standalone' in globalThis.navigator && !!globalThis.navigator.standalone;
|
|
140
|
+
if (!('matchMedia' in globalThis))
|
|
141
|
+
return false;
|
|
142
|
+
return globalThis.matchMedia('(display-mode: standalone)').matches;
|
|
143
|
+
},
|
|
122
144
|
};
|
|
123
145
|
var OS_RESOLVER_MAP = [
|
|
124
146
|
[/windows nt (6\.[23]); arm/i, OS.Windows, resolveWindowsVersion],
|
|
@@ -178,6 +200,14 @@
|
|
|
178
200
|
[/mobile vr; rv:([\w.]+)\).+firefox/i, Browsers.Firefox],
|
|
179
201
|
[/firefox\/([\w.]+)/i, Browsers.Firefox],
|
|
180
202
|
];
|
|
203
|
+
var HIGH_ENTROPY_BRAND_NAME_MAP = {
|
|
204
|
+
'Google Chrome': 'Chrome',
|
|
205
|
+
'Microsoft Edge': 'Edge',
|
|
206
|
+
'Microsoft Edge WebView2': 'Edge WebView2',
|
|
207
|
+
'Android WebView': 'Chrome WebView',
|
|
208
|
+
'HeadlessChrome': 'Chrome Headless',
|
|
209
|
+
'OperaMobile': 'Opera Mobi',
|
|
210
|
+
};
|
|
181
211
|
function resolveWindowsVersion(string) {
|
|
182
212
|
if (string === undefined)
|
|
183
213
|
return '';
|
|
@@ -352,6 +382,33 @@
|
|
|
352
382
|
return { brand: entry, version: '' };
|
|
353
383
|
return { brand: entry.brand, version: entry.version };
|
|
354
384
|
}
|
|
385
|
+
function getSemanticVersion(string) {
|
|
386
|
+
var parts = string.split('.');
|
|
387
|
+
return {
|
|
388
|
+
major: parseInt(parts[0] || '0'),
|
|
389
|
+
minor: parseInt(parts[1] || '0'),
|
|
390
|
+
build: parseInt(parts[2] || '0')
|
|
391
|
+
};
|
|
392
|
+
}
|
|
393
|
+
function parseOSFromCordova() {
|
|
394
|
+
Platform.crossPlatformFramework = CrossPlatformFramework.Cordova;
|
|
395
|
+
if (typeof globalThis.device !== 'undefined') {
|
|
396
|
+
switch (globalThis.device.platform) {
|
|
397
|
+
case 'Android':
|
|
398
|
+
Platform.os = {
|
|
399
|
+
name: OS.Android,
|
|
400
|
+
version: globalThis.device.version,
|
|
401
|
+
};
|
|
402
|
+
break;
|
|
403
|
+
case 'iOS':
|
|
404
|
+
Platform.os = {
|
|
405
|
+
name: OS.iOS,
|
|
406
|
+
version: globalThis.device.version,
|
|
407
|
+
};
|
|
408
|
+
break;
|
|
409
|
+
}
|
|
410
|
+
}
|
|
411
|
+
}
|
|
355
412
|
function getRenderer() {
|
|
356
413
|
if (typeof globalThis.document === 'undefined')
|
|
357
414
|
return '';
|
|
@@ -372,171 +429,293 @@
|
|
|
372
429
|
return '';
|
|
373
430
|
}
|
|
374
431
|
}
|
|
375
|
-
function
|
|
376
|
-
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
var parts = string.split('.');
|
|
384
|
-
return {
|
|
385
|
-
major: parseInt(parts[0] || '0'),
|
|
386
|
-
minor: parseInt(parts[1] || '0'),
|
|
387
|
-
build: parseInt(parts[2] || '0')
|
|
432
|
+
function getNetwork() {
|
|
433
|
+
var network = {
|
|
434
|
+
isOnline: null,
|
|
435
|
+
effectiveType: null,
|
|
436
|
+
type: null,
|
|
437
|
+
downlink: null,
|
|
438
|
+
rtt: null,
|
|
439
|
+
saveData: null,
|
|
388
440
|
};
|
|
389
|
-
|
|
390
|
-
|
|
391
|
-
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
|
|
395
|
-
|
|
396
|
-
|
|
397
|
-
|
|
398
|
-
|
|
399
|
-
|
|
400
|
-
|
|
401
|
-
|
|
402
|
-
|
|
403
|
-
|
|
404
|
-
|
|
405
|
-
break;
|
|
406
|
-
}
|
|
407
|
-
}
|
|
408
|
-
if (Platform.os === OS.iOS && compareVersion(Platform.osVersion, '18.6') === 0) {
|
|
409
|
-
var version = /\) Version\/([\d.]+)/.exec(Platform.userAgent);
|
|
410
|
-
if (version !== null && parseInt(version[1].substring(0, 2), 10) >= 26)
|
|
411
|
-
Platform.osVersion = version[1];
|
|
412
|
-
}
|
|
413
|
-
for (var i = 0; i < ENGINE_RESOLVER_MAP.length; i++) {
|
|
414
|
-
var map = ENGINE_RESOLVER_MAP[i];
|
|
415
|
-
var regexp = map[0];
|
|
416
|
-
var engine = map[1];
|
|
417
|
-
var resolver = map[2];
|
|
418
|
-
var matched = Platform.userAgent.match(regexp);
|
|
419
|
-
if (matched !== null) {
|
|
420
|
-
Platform.engine = engine;
|
|
421
|
-
Platform.engineVersion = resolveVersion(matched[1], resolver);
|
|
422
|
-
break;
|
|
441
|
+
if (typeof globalThis.navigator !== 'undefined') {
|
|
442
|
+
if (typeof globalThis.navigator.onLine !== 'undefined')
|
|
443
|
+
network.isOnline = globalThis.navigator.onLine;
|
|
444
|
+
var connection = globalThis.navigator.connection || globalThis.navigator.mozConnection || globalThis.navigator.webkitConnection;
|
|
445
|
+
if (typeof connection !== 'undefined') {
|
|
446
|
+
if (typeof connection.effectiveType !== 'undefined')
|
|
447
|
+
network.effectiveType = connection.effectiveType;
|
|
448
|
+
if (typeof connection.type !== 'undefined')
|
|
449
|
+
network.type = connection.type;
|
|
450
|
+
if (typeof connection.downlink !== 'undefined')
|
|
451
|
+
network.downlink = connection.downlink;
|
|
452
|
+
if (typeof connection.rtt !== 'undefined')
|
|
453
|
+
network.rtt = connection.rtt;
|
|
454
|
+
if (typeof connection.saveData !== 'undefined')
|
|
455
|
+
network.saveData = connection.saveData;
|
|
456
|
+
}
|
|
423
457
|
}
|
|
424
|
-
|
|
425
|
-
|
|
426
|
-
|
|
427
|
-
|
|
428
|
-
|
|
429
|
-
|
|
430
|
-
|
|
431
|
-
|
|
432
|
-
|
|
433
|
-
|
|
434
|
-
|
|
458
|
+
if (Platform.isNode) {
|
|
459
|
+
try {
|
|
460
|
+
var os = require('os');
|
|
461
|
+
var networkInterfaces = os.networkInterfaces();
|
|
462
|
+
var networkInterfaceNames = Object.keys(networkInterfaces);
|
|
463
|
+
for (var i = 0; i < networkInterfaceNames.length; i++) {
|
|
464
|
+
var name_1 = networkInterfaceNames[i];
|
|
465
|
+
var networkInterface = networkInterfaces[name_1];
|
|
466
|
+
for (var j = 0; j < networkInterface.length; j++) {
|
|
467
|
+
var address = networkInterface[j];
|
|
468
|
+
if (!address.internal && address.family === 'IPv4')
|
|
469
|
+
network.isOnline = true;
|
|
470
|
+
}
|
|
471
|
+
if (network.isOnline)
|
|
472
|
+
break;
|
|
473
|
+
}
|
|
474
|
+
}
|
|
475
|
+
catch (_) {
|
|
476
|
+
}
|
|
477
|
+
try {
|
|
478
|
+
var childProcess = require('child_process');
|
|
479
|
+
if (Platform.os.name === OS.Windows) {
|
|
480
|
+
try {
|
|
481
|
+
var output = childProcess.execSync('netsh wlan show interfaces', { encoding: 'utf8', timeout: 5000 });
|
|
482
|
+
if (output.includes('State') && output.includes('connected'))
|
|
483
|
+
network.type = 'wifi';
|
|
484
|
+
}
|
|
485
|
+
catch (_) {
|
|
486
|
+
}
|
|
487
|
+
if (network.type === null) {
|
|
488
|
+
try {
|
|
489
|
+
var output = childProcess.execSync('ipconfig', { encoding: 'utf8', timeout: 5000 });
|
|
490
|
+
if (output.includes('Ethernet adapter'))
|
|
491
|
+
network.type = 'ethernet';
|
|
492
|
+
}
|
|
493
|
+
catch (_) {
|
|
494
|
+
}
|
|
495
|
+
}
|
|
496
|
+
if (network.type === null)
|
|
497
|
+
network.type = 'other';
|
|
498
|
+
}
|
|
499
|
+
else if (Platform.os.name === OS.MacOS) {
|
|
500
|
+
try {
|
|
501
|
+
var output = childProcess.execSync('networksetup -listallhardwareports', { encoding: 'utf8', timeout: 5000 });
|
|
502
|
+
var activeInterface = childProcess.execSync('route -n get default | grep interface', { encoding: 'utf8', timeout: 5000 });
|
|
503
|
+
if (activeInterface.includes('en0') && output.includes('Wi-Fi'))
|
|
504
|
+
network.type = 'wifi';
|
|
505
|
+
else if (activeInterface.includes('en') || output.includes('Ethernet'))
|
|
506
|
+
network.type = 'ethernet';
|
|
507
|
+
else
|
|
508
|
+
network.type = 'other';
|
|
509
|
+
}
|
|
510
|
+
catch (_) {
|
|
511
|
+
network.type = 'other';
|
|
512
|
+
}
|
|
513
|
+
}
|
|
514
|
+
}
|
|
515
|
+
catch (_) {
|
|
516
|
+
}
|
|
435
517
|
}
|
|
436
|
-
|
|
437
|
-
|
|
438
|
-
|
|
439
|
-
|
|
440
|
-
|
|
441
|
-
|
|
442
|
-
|
|
443
|
-
|
|
444
|
-
|
|
445
|
-
|
|
446
|
-
|
|
447
|
-
|
|
448
|
-
|
|
449
|
-
|
|
450
|
-
|
|
451
|
-
|
|
452
|
-
|
|
453
|
-
|
|
454
|
-
|
|
455
|
-
|
|
456
|
-
|
|
457
|
-
|
|
458
|
-
Platform.os = OS.MacOS;
|
|
459
|
-
Platform.osVersion = release;
|
|
460
|
-
break;
|
|
518
|
+
return network;
|
|
519
|
+
}
|
|
520
|
+
function canUseHighEntropyValues(navigator) {
|
|
521
|
+
return typeof globalThis.navigator !== 'undefined' && typeof navigator.userAgentData !== 'undefined' && typeof navigator.userAgentData.getHighEntropyValues !== 'undefined';
|
|
522
|
+
}
|
|
523
|
+
function init() {
|
|
524
|
+
if ((typeof globalThis.process !== 'undefined' && typeof globalThis.process.versions !== 'undefined' && globalThis.process.versions.electron !== undefined) || (/ electron\//i.test(USER_AGENT)))
|
|
525
|
+
Platform.crossPlatformFramework = CrossPlatformFramework.Electron;
|
|
526
|
+
if (typeof globalThis.navigator !== 'undefined' && globalThis.navigator.product === 'ReactNative')
|
|
527
|
+
Platform.crossPlatformFramework = CrossPlatformFramework.ReactNative;
|
|
528
|
+
for (var i = 0; i < OS_RESOLVER_MAP.length; i++) {
|
|
529
|
+
var map = OS_RESOLVER_MAP[i];
|
|
530
|
+
var regexp = map[0];
|
|
531
|
+
var os = map[1];
|
|
532
|
+
var resolver = map[2];
|
|
533
|
+
var matched = Platform.userAgent.match(regexp);
|
|
534
|
+
if (matched !== null) {
|
|
535
|
+
Platform.os = {
|
|
536
|
+
name: os,
|
|
537
|
+
version: resolveVersion(matched[1], resolver),
|
|
538
|
+
};
|
|
539
|
+
break;
|
|
461
540
|
}
|
|
462
541
|
}
|
|
463
|
-
|
|
542
|
+
if (Platform.os.name === OS.iOS && compareVersion(Platform.os.version, '18.6') === 0) {
|
|
543
|
+
var version = /\) Version\/([\d.]+)/.exec(Platform.userAgent);
|
|
544
|
+
if (version !== null && parseInt(version[1].substring(0, 2), 10) >= 26)
|
|
545
|
+
Platform.os.version = version[1];
|
|
464
546
|
}
|
|
465
|
-
|
|
466
|
-
|
|
467
|
-
|
|
468
|
-
var
|
|
469
|
-
var
|
|
470
|
-
var
|
|
471
|
-
|
|
472
|
-
|
|
473
|
-
|
|
474
|
-
|
|
475
|
-
|
|
476
|
-
|
|
477
|
-
case 'darwin':
|
|
478
|
-
Platform.os = OS.MacOS;
|
|
479
|
-
Platform.osVersion = resolveSemanticDarwinVersion(version, release);
|
|
480
|
-
break;
|
|
481
|
-
case 'android':
|
|
482
|
-
Platform.os = OS.Android;
|
|
483
|
-
Platform.osVersion = release;
|
|
484
|
-
break;
|
|
485
|
-
case 'linux':
|
|
486
|
-
if (/android/i.test(release)) {
|
|
487
|
-
Platform.os = OS.Android;
|
|
488
|
-
Platform.osVersion = release;
|
|
489
|
-
}
|
|
490
|
-
break;
|
|
547
|
+
for (var i = 0; i < ENGINE_RESOLVER_MAP.length; i++) {
|
|
548
|
+
var map = ENGINE_RESOLVER_MAP[i];
|
|
549
|
+
var regexp = map[0];
|
|
550
|
+
var engine = map[1];
|
|
551
|
+
var resolver = map[2];
|
|
552
|
+
var matched = Platform.userAgent.match(regexp);
|
|
553
|
+
if (matched !== null) {
|
|
554
|
+
Platform.engine = {
|
|
555
|
+
name: engine,
|
|
556
|
+
version: resolveVersion(matched[1], resolver),
|
|
557
|
+
};
|
|
558
|
+
break;
|
|
491
559
|
}
|
|
492
560
|
}
|
|
493
|
-
|
|
561
|
+
for (var i = 0; i < BROWSER_RESOLVER_MAP.length; i++) {
|
|
562
|
+
var map = BROWSER_RESOLVER_MAP[i];
|
|
563
|
+
var regexp = map[0];
|
|
564
|
+
var browser = map[1];
|
|
565
|
+
var resolver = map[2];
|
|
566
|
+
var matched = Platform.userAgent.match(regexp);
|
|
567
|
+
if (matched !== null) {
|
|
568
|
+
Platform.browser = {
|
|
569
|
+
name: browser,
|
|
570
|
+
version: resolveVersion(matched[1], resolver),
|
|
571
|
+
};
|
|
572
|
+
break;
|
|
573
|
+
}
|
|
494
574
|
}
|
|
495
|
-
|
|
496
|
-
|
|
497
|
-
|
|
498
|
-
|
|
499
|
-
|
|
500
|
-
|
|
501
|
-
|
|
502
|
-
|
|
575
|
+
if (Platform.crossPlatformFramework === CrossPlatformFramework.ReactNative) {
|
|
576
|
+
try {
|
|
577
|
+
var reactNative = require('react-native');
|
|
578
|
+
var platform = reactNative.Platform;
|
|
579
|
+
var os = platform.OS;
|
|
580
|
+
var release = '' + platform.Version;
|
|
581
|
+
var version = getSemanticVersion(release);
|
|
582
|
+
switch (os) {
|
|
583
|
+
case 'android':
|
|
584
|
+
Platform.os = {
|
|
585
|
+
name: OS.Android,
|
|
586
|
+
version: resolveSemanticAndroidVersion(version, release),
|
|
587
|
+
};
|
|
588
|
+
break;
|
|
589
|
+
case 'ios':
|
|
590
|
+
Platform.os = {
|
|
591
|
+
name: OS.iOS,
|
|
592
|
+
version: release,
|
|
593
|
+
};
|
|
594
|
+
break;
|
|
595
|
+
case 'windows':
|
|
596
|
+
Platform.os = {
|
|
597
|
+
name: OS.Windows,
|
|
598
|
+
version: resolveSemanticWindowsVersion(version, release),
|
|
599
|
+
};
|
|
503
600
|
break;
|
|
504
|
-
case '
|
|
505
|
-
Platform.os =
|
|
601
|
+
case 'macos':
|
|
602
|
+
Platform.os = {
|
|
603
|
+
name: OS.MacOS,
|
|
604
|
+
version: release,
|
|
605
|
+
};
|
|
506
606
|
break;
|
|
507
607
|
}
|
|
508
|
-
Platform.osVersion = globalThis.device.version;
|
|
509
608
|
}
|
|
510
|
-
|
|
511
|
-
}
|
|
512
|
-
if (navigator.userAgentData !== undefined && navigator.userAgentData.getHighEntropyValues !== undefined) {
|
|
513
|
-
navigator
|
|
514
|
-
.userAgentData
|
|
515
|
-
.getHighEntropyValues(['brands', 'fullVersionList', 'mobile', 'model', 'platform', 'platformVersion', 'architecture', 'formFactors', 'bitness', 'uaFullVersion', 'wow64'])
|
|
516
|
-
.then(function (result) {
|
|
517
|
-
var brands = result.fullVersionList || result.brands || [];
|
|
518
|
-
var platformVersion = result.platformVersion;
|
|
519
|
-
for (var i = 0; i < brands.length; i++) {
|
|
520
|
-
var brand = normalizeBrand(brands[i]);
|
|
521
|
-
var brandName = brand.brand;
|
|
522
|
-
var brandVersion = brand.version;
|
|
523
|
-
if (/not.a.brand/i.test(brandName))
|
|
524
|
-
continue;
|
|
525
|
-
if (brandName === "Chromium")
|
|
526
|
-
Platform.engineVersion = brandVersion;
|
|
609
|
+
catch (_) {
|
|
527
610
|
}
|
|
528
|
-
|
|
529
|
-
if (Platform.os === OS.Windows && parseInt(platformVersion.replace(/[^\d.]/g, '').split('.')[0], 10) >= 13)
|
|
530
|
-
Platform.osVersion = '11';
|
|
531
|
-
else
|
|
532
|
-
Platform.osVersion = platformVersion;
|
|
611
|
+
finally {
|
|
533
612
|
}
|
|
534
|
-
}
|
|
613
|
+
}
|
|
614
|
+
if (Platform.isNode) {
|
|
615
|
+
try {
|
|
616
|
+
var os = require('os');
|
|
617
|
+
var platform = os.platform();
|
|
618
|
+
var release = os.release();
|
|
619
|
+
var version = getSemanticVersion(release);
|
|
620
|
+
switch (platform) {
|
|
621
|
+
case 'win32':
|
|
622
|
+
Platform.os = {
|
|
623
|
+
name: OS.Windows,
|
|
624
|
+
version: resolveSemanticWindowsVersion(version, release),
|
|
625
|
+
};
|
|
626
|
+
break;
|
|
627
|
+
case 'darwin':
|
|
628
|
+
Platform.os = {
|
|
629
|
+
name: OS.MacOS,
|
|
630
|
+
version: resolveSemanticDarwinVersion(version, release),
|
|
631
|
+
};
|
|
632
|
+
break;
|
|
633
|
+
case 'android':
|
|
634
|
+
Platform.os = {
|
|
635
|
+
name: OS.Android,
|
|
636
|
+
version: release,
|
|
637
|
+
};
|
|
638
|
+
break;
|
|
639
|
+
case 'linux':
|
|
640
|
+
if (/android/i.test(release)) {
|
|
641
|
+
Platform.os = {
|
|
642
|
+
name: OS.Android,
|
|
643
|
+
version: release,
|
|
644
|
+
};
|
|
645
|
+
}
|
|
646
|
+
break;
|
|
647
|
+
}
|
|
648
|
+
}
|
|
649
|
+
catch (_) {
|
|
650
|
+
}
|
|
651
|
+
finally {
|
|
652
|
+
}
|
|
653
|
+
}
|
|
654
|
+
if (typeof globalThis.document !== 'undefined') {
|
|
655
|
+
if (typeof globalThis.device !== 'undefined') {
|
|
656
|
+
parseOSFromCordova();
|
|
657
|
+
}
|
|
658
|
+
else {
|
|
659
|
+
globalThis.document.addEventListener("deviceready", parseOSFromCordova, false);
|
|
660
|
+
}
|
|
661
|
+
}
|
|
662
|
+
if (canUseHighEntropyValues(globalThis.navigator)) {
|
|
663
|
+
globalThis
|
|
664
|
+
.navigator
|
|
665
|
+
.userAgentData
|
|
666
|
+
.getHighEntropyValues(['brands', 'fullVersionList', 'mobile', 'model', 'platform', 'platformVersion', 'architecture', 'formFactors', 'bitness', 'uaFullVersion', 'wow64'])
|
|
667
|
+
.then(function (result) {
|
|
668
|
+
var brands = result.fullVersionList || result.brands || [];
|
|
669
|
+
var platformVersion = result.platformVersion;
|
|
670
|
+
var platform = result.platform;
|
|
671
|
+
var browserName = Platform.browser.name;
|
|
672
|
+
var prevBrandName = null;
|
|
673
|
+
for (var i = 0; i < brands.length; i++) {
|
|
674
|
+
var brand = normalizeBrand(brands[i]);
|
|
675
|
+
var brandVersion = brand.version;
|
|
676
|
+
var brandName = brand.brand;
|
|
677
|
+
if (/not.a.brand/i.test(brandName))
|
|
678
|
+
continue;
|
|
679
|
+
if (prevBrandName === null || (/Chrom/.test(prevBrandName) && brandName !== 'Chromium') || (prevBrandName === 'Edge' && /WebView2/.test(brandName))) {
|
|
680
|
+
brandName = HIGH_ENTROPY_BRAND_NAME_MAP[brandName] || brandName;
|
|
681
|
+
prevBrandName = browserName;
|
|
682
|
+
if (prevBrandName === null || /Chrom/.test(prevBrandName) || !/Chrom/.test(brandName)) {
|
|
683
|
+
browserName = brandName;
|
|
684
|
+
if (browserName === 'Chrome' || browserName === 'Chrome WebView' || browserName === 'Chrome Headless')
|
|
685
|
+
Platform.browser.name = Browsers.Chrome;
|
|
686
|
+
else if (browserName === 'Edge' || browserName === 'Edge WebView2')
|
|
687
|
+
Platform.browser.name = Browsers.Edge;
|
|
688
|
+
else if (browserName === 'Opera Mobi')
|
|
689
|
+
Platform.browser.name = Browsers.Opera;
|
|
690
|
+
Platform.browser.version = brandVersion;
|
|
691
|
+
}
|
|
692
|
+
prevBrandName = brandName;
|
|
693
|
+
}
|
|
694
|
+
if (brandName === 'Chromium')
|
|
695
|
+
Platform.engine.version = brandVersion;
|
|
696
|
+
}
|
|
697
|
+
if (typeof platformVersion === 'string') {
|
|
698
|
+
if (Platform.os.name === OS.Windows)
|
|
699
|
+
Platform.os.version = parseInt(platformVersion.split('.')[0], 10) >= 13 ? '11' : '10';
|
|
700
|
+
else
|
|
701
|
+
Platform.os.version = platformVersion;
|
|
702
|
+
}
|
|
703
|
+
if (typeof platform === 'string') {
|
|
704
|
+
if (/android/i.test(platform))
|
|
705
|
+
Platform.os.name = OS.Android;
|
|
706
|
+
else if (/ios|iphone|ipad/i.test(platform))
|
|
707
|
+
Platform.os.name = OS.iOS;
|
|
708
|
+
else if (/windows|win32/i.test(platform))
|
|
709
|
+
Platform.os.name = OS.Windows;
|
|
710
|
+
else if (/macos|macintel/i.test(platform))
|
|
711
|
+
Platform.os.name = OS.MacOS;
|
|
712
|
+
}
|
|
713
|
+
if (result.mobile === true)
|
|
714
|
+
Platform.device = Devices.Mobile;
|
|
715
|
+
});
|
|
716
|
+
}
|
|
535
717
|
}
|
|
536
|
-
|
|
537
|
-
Platform.isMobile = Platform.device === Devices.Mobile;
|
|
538
|
-
Platform.isDesktop = Platform.device === Devices.Desktop;
|
|
539
|
-
Platform.isStandalone = getIsStandalone(Platform.os);
|
|
718
|
+
init();
|
|
540
719
|
|
|
541
720
|
var currentAppearance = null;
|
|
542
721
|
var appearanceIntervalId = null;
|
|
@@ -602,7 +781,7 @@
|
|
|
602
781
|
return new Promise(function (resolve) {
|
|
603
782
|
resolve(getAppearanceFromElectron());
|
|
604
783
|
});
|
|
605
|
-
if (Platform.browser === Browsers.SamsungInternet)
|
|
784
|
+
if (Platform.browser.name === Browsers.SamsungInternet)
|
|
606
785
|
return getAppearanceFromEngine();
|
|
607
786
|
return new Promise(function (resolve) {
|
|
608
787
|
resolve(getAppearanceFromMediaQuery());
|
|
@@ -686,7 +865,7 @@
|
|
|
686
865
|
if (index !== -1)
|
|
687
866
|
ENTRIES.splice(index, 1);
|
|
688
867
|
if (ENTRIES.length === 0) {
|
|
689
|
-
if (Platform.browser === Browsers.SamsungInternet)
|
|
868
|
+
if (Platform.browser.name === Browsers.SamsungInternet)
|
|
690
869
|
stopPolling();
|
|
691
870
|
else
|
|
692
871
|
removeListener(entry.capture);
|
|
@@ -751,7 +930,7 @@
|
|
|
751
930
|
if (index === -1) {
|
|
752
931
|
ENTRIES.push(entry);
|
|
753
932
|
if (ENTRIES.length === 1) {
|
|
754
|
-
if (Platform.browser === Browsers.SamsungInternet)
|
|
933
|
+
if (Platform.browser.name === Browsers.SamsungInternet)
|
|
755
934
|
startPolling();
|
|
756
935
|
else
|
|
757
936
|
addListener(entry.capture);
|