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
|
@@ -76,21 +76,43 @@
|
|
|
76
76
|
var USER_AGENT = typeof globalThis.navigator !== 'undefined' && typeof globalThis.navigator.userAgent === 'string' ? globalThis.navigator.userAgent : '';
|
|
77
77
|
|
|
78
78
|
var Platform = {
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
browser: Browsers.Unknown,
|
|
79
|
+
os: { name: OS.Unknown, version: '' },
|
|
80
|
+
engine: { name: Engines.Unknown, version: '' },
|
|
81
|
+
browser: { name: Browsers.Unknown, version: '' },
|
|
83
82
|
crossPlatformFramework: CrossPlatformFramework.Unknown,
|
|
84
|
-
osVersion: '',
|
|
85
|
-
engineVersion: '',
|
|
86
|
-
browserVersion: '',
|
|
87
|
-
renderer: getRenderer(),
|
|
88
83
|
userAgent: USER_AGENT,
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
84
|
+
get network() {
|
|
85
|
+
return getNetwork();
|
|
86
|
+
},
|
|
87
|
+
get device() {
|
|
88
|
+
if (this.os.name === OS.iOS || this.os.name === OS.Android)
|
|
89
|
+
return Devices.Mobile;
|
|
90
|
+
if (this.os.name === OS.Windows || this.os.name === OS.MacOS)
|
|
91
|
+
return Devices.Desktop;
|
|
92
|
+
return Devices.Unknown;
|
|
93
|
+
},
|
|
94
|
+
get renderer() {
|
|
95
|
+
return getRenderer();
|
|
96
|
+
},
|
|
97
|
+
get isMobile() {
|
|
98
|
+
return this.device === Devices.Mobile;
|
|
99
|
+
},
|
|
100
|
+
get isDesktop() {
|
|
101
|
+
return this.device === Devices.Desktop;
|
|
102
|
+
},
|
|
103
|
+
get isWebview() {
|
|
104
|
+
return /; ?wv|applewebkit(?!.*safari)/i.test(this.userAgent);
|
|
105
|
+
},
|
|
106
|
+
get isNode() {
|
|
107
|
+
return typeof globalThis.process !== 'undefined' && typeof globalThis.process.versions !== 'undefined' && globalThis.process.versions.node !== undefined;
|
|
108
|
+
},
|
|
109
|
+
get isStandalone() {
|
|
110
|
+
if (this.os.name === OS.iOS)
|
|
111
|
+
return 'standalone' in globalThis.navigator && !!globalThis.navigator.standalone;
|
|
112
|
+
if (!('matchMedia' in globalThis))
|
|
113
|
+
return false;
|
|
114
|
+
return globalThis.matchMedia('(display-mode: standalone)').matches;
|
|
115
|
+
},
|
|
94
116
|
};
|
|
95
117
|
var OS_RESOLVER_MAP = [
|
|
96
118
|
[/windows nt (6\.[23]); arm/i, OS.Windows, resolveWindowsVersion],
|
|
@@ -150,6 +172,14 @@
|
|
|
150
172
|
[/mobile vr; rv:([\w.]+)\).+firefox/i, Browsers.Firefox],
|
|
151
173
|
[/firefox\/([\w.]+)/i, Browsers.Firefox],
|
|
152
174
|
];
|
|
175
|
+
var HIGH_ENTROPY_BRAND_NAME_MAP = {
|
|
176
|
+
'Google Chrome': 'Chrome',
|
|
177
|
+
'Microsoft Edge': 'Edge',
|
|
178
|
+
'Microsoft Edge WebView2': 'Edge WebView2',
|
|
179
|
+
'Android WebView': 'Chrome WebView',
|
|
180
|
+
'HeadlessChrome': 'Chrome Headless',
|
|
181
|
+
'OperaMobile': 'Opera Mobi',
|
|
182
|
+
};
|
|
153
183
|
function resolveWindowsVersion(string) {
|
|
154
184
|
if (string === undefined)
|
|
155
185
|
return '';
|
|
@@ -324,6 +354,33 @@
|
|
|
324
354
|
return { brand: entry, version: '' };
|
|
325
355
|
return { brand: entry.brand, version: entry.version };
|
|
326
356
|
}
|
|
357
|
+
function getSemanticVersion(string) {
|
|
358
|
+
var parts = string.split('.');
|
|
359
|
+
return {
|
|
360
|
+
major: parseInt(parts[0] || '0'),
|
|
361
|
+
minor: parseInt(parts[1] || '0'),
|
|
362
|
+
build: parseInt(parts[2] || '0')
|
|
363
|
+
};
|
|
364
|
+
}
|
|
365
|
+
function parseOSFromCordova() {
|
|
366
|
+
Platform.crossPlatformFramework = CrossPlatformFramework.Cordova;
|
|
367
|
+
if (typeof globalThis.device !== 'undefined') {
|
|
368
|
+
switch (globalThis.device.platform) {
|
|
369
|
+
case 'Android':
|
|
370
|
+
Platform.os = {
|
|
371
|
+
name: OS.Android,
|
|
372
|
+
version: globalThis.device.version,
|
|
373
|
+
};
|
|
374
|
+
break;
|
|
375
|
+
case 'iOS':
|
|
376
|
+
Platform.os = {
|
|
377
|
+
name: OS.iOS,
|
|
378
|
+
version: globalThis.device.version,
|
|
379
|
+
};
|
|
380
|
+
break;
|
|
381
|
+
}
|
|
382
|
+
}
|
|
383
|
+
}
|
|
327
384
|
function getRenderer() {
|
|
328
385
|
if (typeof globalThis.document === 'undefined')
|
|
329
386
|
return '';
|
|
@@ -344,171 +401,293 @@
|
|
|
344
401
|
return '';
|
|
345
402
|
}
|
|
346
403
|
}
|
|
347
|
-
function
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
var parts = string.split('.');
|
|
356
|
-
return {
|
|
357
|
-
major: parseInt(parts[0] || '0'),
|
|
358
|
-
minor: parseInt(parts[1] || '0'),
|
|
359
|
-
build: parseInt(parts[2] || '0')
|
|
404
|
+
function getNetwork() {
|
|
405
|
+
var network = {
|
|
406
|
+
isOnline: null,
|
|
407
|
+
effectiveType: null,
|
|
408
|
+
type: null,
|
|
409
|
+
downlink: null,
|
|
410
|
+
rtt: null,
|
|
411
|
+
saveData: null,
|
|
360
412
|
};
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
|
|
377
|
-
break;
|
|
413
|
+
if (typeof globalThis.navigator !== 'undefined') {
|
|
414
|
+
if (typeof globalThis.navigator.onLine !== 'undefined')
|
|
415
|
+
network.isOnline = globalThis.navigator.onLine;
|
|
416
|
+
var connection = globalThis.navigator.connection || globalThis.navigator.mozConnection || globalThis.navigator.webkitConnection;
|
|
417
|
+
if (typeof connection !== 'undefined') {
|
|
418
|
+
if (typeof connection.effectiveType !== 'undefined')
|
|
419
|
+
network.effectiveType = connection.effectiveType;
|
|
420
|
+
if (typeof connection.type !== 'undefined')
|
|
421
|
+
network.type = connection.type;
|
|
422
|
+
if (typeof connection.downlink !== 'undefined')
|
|
423
|
+
network.downlink = connection.downlink;
|
|
424
|
+
if (typeof connection.rtt !== 'undefined')
|
|
425
|
+
network.rtt = connection.rtt;
|
|
426
|
+
if (typeof connection.saveData !== 'undefined')
|
|
427
|
+
network.saveData = connection.saveData;
|
|
428
|
+
}
|
|
378
429
|
}
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
|
|
390
|
-
|
|
391
|
-
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
|
|
430
|
+
if (Platform.isNode) {
|
|
431
|
+
try {
|
|
432
|
+
var os = require('os');
|
|
433
|
+
var networkInterfaces = os.networkInterfaces();
|
|
434
|
+
var networkInterfaceNames = Object.keys(networkInterfaces);
|
|
435
|
+
for (var i = 0; i < networkInterfaceNames.length; i++) {
|
|
436
|
+
var name_1 = networkInterfaceNames[i];
|
|
437
|
+
var networkInterface = networkInterfaces[name_1];
|
|
438
|
+
for (var j = 0; j < networkInterface.length; j++) {
|
|
439
|
+
var address = networkInterface[j];
|
|
440
|
+
if (!address.internal && address.family === 'IPv4')
|
|
441
|
+
network.isOnline = true;
|
|
442
|
+
}
|
|
443
|
+
if (network.isOnline)
|
|
444
|
+
break;
|
|
445
|
+
}
|
|
446
|
+
}
|
|
447
|
+
catch (_) {
|
|
448
|
+
}
|
|
449
|
+
try {
|
|
450
|
+
var childProcess = require('child_process');
|
|
451
|
+
if (Platform.os.name === OS.Windows) {
|
|
452
|
+
try {
|
|
453
|
+
var output = childProcess.execSync('netsh wlan show interfaces', { encoding: 'utf8', timeout: 5000 });
|
|
454
|
+
if (output.includes('State') && output.includes('connected'))
|
|
455
|
+
network.type = 'wifi';
|
|
456
|
+
}
|
|
457
|
+
catch (_) {
|
|
458
|
+
}
|
|
459
|
+
if (network.type === null) {
|
|
460
|
+
try {
|
|
461
|
+
var output = childProcess.execSync('ipconfig', { encoding: 'utf8', timeout: 5000 });
|
|
462
|
+
if (output.includes('Ethernet adapter'))
|
|
463
|
+
network.type = 'ethernet';
|
|
464
|
+
}
|
|
465
|
+
catch (_) {
|
|
466
|
+
}
|
|
467
|
+
}
|
|
468
|
+
if (network.type === null)
|
|
469
|
+
network.type = 'other';
|
|
470
|
+
}
|
|
471
|
+
else if (Platform.os.name === OS.MacOS) {
|
|
472
|
+
try {
|
|
473
|
+
var output = childProcess.execSync('networksetup -listallhardwareports', { encoding: 'utf8', timeout: 5000 });
|
|
474
|
+
var activeInterface = childProcess.execSync('route -n get default | grep interface', { encoding: 'utf8', timeout: 5000 });
|
|
475
|
+
if (activeInterface.includes('en0') && output.includes('Wi-Fi'))
|
|
476
|
+
network.type = 'wifi';
|
|
477
|
+
else if (activeInterface.includes('en') || output.includes('Ethernet'))
|
|
478
|
+
network.type = 'ethernet';
|
|
479
|
+
else
|
|
480
|
+
network.type = 'other';
|
|
481
|
+
}
|
|
482
|
+
catch (_) {
|
|
483
|
+
network.type = 'other';
|
|
484
|
+
}
|
|
485
|
+
}
|
|
486
|
+
}
|
|
487
|
+
catch (_) {
|
|
488
|
+
}
|
|
395
489
|
}
|
|
490
|
+
return network;
|
|
396
491
|
}
|
|
397
|
-
|
|
398
|
-
|
|
399
|
-
var regexp = map[0];
|
|
400
|
-
var browser = map[1];
|
|
401
|
-
var resolver = map[2];
|
|
402
|
-
var matched = Platform.userAgent.match(regexp);
|
|
403
|
-
if (matched !== null) {
|
|
404
|
-
Platform.browser = browser;
|
|
405
|
-
Platform.browserVersion = resolveVersion(matched[1], resolver);
|
|
406
|
-
break;
|
|
407
|
-
}
|
|
492
|
+
function canUseHighEntropyValues(navigator) {
|
|
493
|
+
return typeof globalThis.navigator !== 'undefined' && typeof navigator.userAgentData !== 'undefined' && typeof navigator.userAgentData.getHighEntropyValues !== 'undefined';
|
|
408
494
|
}
|
|
409
|
-
|
|
410
|
-
|
|
411
|
-
|
|
412
|
-
|
|
413
|
-
|
|
414
|
-
|
|
415
|
-
var
|
|
416
|
-
|
|
417
|
-
|
|
418
|
-
|
|
419
|
-
|
|
420
|
-
|
|
421
|
-
|
|
422
|
-
|
|
423
|
-
|
|
424
|
-
|
|
425
|
-
|
|
426
|
-
Platform.os = OS.Windows;
|
|
427
|
-
Platform.osVersion = resolveSemanticWindowsVersion(version, release);
|
|
428
|
-
break;
|
|
429
|
-
case 'macos':
|
|
430
|
-
Platform.os = OS.MacOS;
|
|
431
|
-
Platform.osVersion = release;
|
|
432
|
-
break;
|
|
495
|
+
function init() {
|
|
496
|
+
if ((typeof globalThis.process !== 'undefined' && typeof globalThis.process.versions !== 'undefined' && globalThis.process.versions.electron !== undefined) || (/ electron\//i.test(USER_AGENT)))
|
|
497
|
+
Platform.crossPlatformFramework = CrossPlatformFramework.Electron;
|
|
498
|
+
if (typeof globalThis.navigator !== 'undefined' && globalThis.navigator.product === 'ReactNative')
|
|
499
|
+
Platform.crossPlatformFramework = CrossPlatformFramework.ReactNative;
|
|
500
|
+
for (var i = 0; i < OS_RESOLVER_MAP.length; i++) {
|
|
501
|
+
var map = OS_RESOLVER_MAP[i];
|
|
502
|
+
var regexp = map[0];
|
|
503
|
+
var os = map[1];
|
|
504
|
+
var resolver = map[2];
|
|
505
|
+
var matched = Platform.userAgent.match(regexp);
|
|
506
|
+
if (matched !== null) {
|
|
507
|
+
Platform.os = {
|
|
508
|
+
name: os,
|
|
509
|
+
version: resolveVersion(matched[1], resolver),
|
|
510
|
+
};
|
|
511
|
+
break;
|
|
433
512
|
}
|
|
434
513
|
}
|
|
435
|
-
|
|
514
|
+
if (Platform.os.name === OS.iOS && compareVersion(Platform.os.version, '18.6') === 0) {
|
|
515
|
+
var version = /\) Version\/([\d.]+)/.exec(Platform.userAgent);
|
|
516
|
+
if (version !== null && parseInt(version[1].substring(0, 2), 10) >= 26)
|
|
517
|
+
Platform.os.version = version[1];
|
|
436
518
|
}
|
|
437
|
-
|
|
438
|
-
|
|
439
|
-
|
|
440
|
-
var
|
|
441
|
-
var
|
|
442
|
-
var
|
|
443
|
-
|
|
444
|
-
|
|
445
|
-
|
|
446
|
-
|
|
447
|
-
|
|
448
|
-
|
|
449
|
-
case 'darwin':
|
|
450
|
-
Platform.os = OS.MacOS;
|
|
451
|
-
Platform.osVersion = resolveSemanticDarwinVersion(version, release);
|
|
452
|
-
break;
|
|
453
|
-
case 'android':
|
|
454
|
-
Platform.os = OS.Android;
|
|
455
|
-
Platform.osVersion = release;
|
|
456
|
-
break;
|
|
457
|
-
case 'linux':
|
|
458
|
-
if (/android/i.test(release)) {
|
|
459
|
-
Platform.os = OS.Android;
|
|
460
|
-
Platform.osVersion = release;
|
|
461
|
-
}
|
|
462
|
-
break;
|
|
519
|
+
for (var i = 0; i < ENGINE_RESOLVER_MAP.length; i++) {
|
|
520
|
+
var map = ENGINE_RESOLVER_MAP[i];
|
|
521
|
+
var regexp = map[0];
|
|
522
|
+
var engine = map[1];
|
|
523
|
+
var resolver = map[2];
|
|
524
|
+
var matched = Platform.userAgent.match(regexp);
|
|
525
|
+
if (matched !== null) {
|
|
526
|
+
Platform.engine = {
|
|
527
|
+
name: engine,
|
|
528
|
+
version: resolveVersion(matched[1], resolver),
|
|
529
|
+
};
|
|
530
|
+
break;
|
|
463
531
|
}
|
|
464
532
|
}
|
|
465
|
-
|
|
533
|
+
for (var i = 0; i < BROWSER_RESOLVER_MAP.length; i++) {
|
|
534
|
+
var map = BROWSER_RESOLVER_MAP[i];
|
|
535
|
+
var regexp = map[0];
|
|
536
|
+
var browser = map[1];
|
|
537
|
+
var resolver = map[2];
|
|
538
|
+
var matched = Platform.userAgent.match(regexp);
|
|
539
|
+
if (matched !== null) {
|
|
540
|
+
Platform.browser = {
|
|
541
|
+
name: browser,
|
|
542
|
+
version: resolveVersion(matched[1], resolver),
|
|
543
|
+
};
|
|
544
|
+
break;
|
|
545
|
+
}
|
|
466
546
|
}
|
|
467
|
-
|
|
468
|
-
|
|
469
|
-
|
|
470
|
-
|
|
471
|
-
|
|
472
|
-
|
|
473
|
-
|
|
474
|
-
|
|
547
|
+
if (Platform.crossPlatformFramework === CrossPlatformFramework.ReactNative) {
|
|
548
|
+
try {
|
|
549
|
+
var reactNative = require('react-native');
|
|
550
|
+
var platform = reactNative.Platform;
|
|
551
|
+
var os = platform.OS;
|
|
552
|
+
var release = '' + platform.Version;
|
|
553
|
+
var version = getSemanticVersion(release);
|
|
554
|
+
switch (os) {
|
|
555
|
+
case 'android':
|
|
556
|
+
Platform.os = {
|
|
557
|
+
name: OS.Android,
|
|
558
|
+
version: resolveSemanticAndroidVersion(version, release),
|
|
559
|
+
};
|
|
560
|
+
break;
|
|
561
|
+
case 'ios':
|
|
562
|
+
Platform.os = {
|
|
563
|
+
name: OS.iOS,
|
|
564
|
+
version: release,
|
|
565
|
+
};
|
|
566
|
+
break;
|
|
567
|
+
case 'windows':
|
|
568
|
+
Platform.os = {
|
|
569
|
+
name: OS.Windows,
|
|
570
|
+
version: resolveSemanticWindowsVersion(version, release),
|
|
571
|
+
};
|
|
475
572
|
break;
|
|
476
|
-
case '
|
|
477
|
-
Platform.os =
|
|
573
|
+
case 'macos':
|
|
574
|
+
Platform.os = {
|
|
575
|
+
name: OS.MacOS,
|
|
576
|
+
version: release,
|
|
577
|
+
};
|
|
478
578
|
break;
|
|
479
579
|
}
|
|
480
|
-
Platform.osVersion = globalThis.device.version;
|
|
481
580
|
}
|
|
482
|
-
|
|
483
|
-
}
|
|
484
|
-
if (navigator.userAgentData !== undefined && navigator.userAgentData.getHighEntropyValues !== undefined) {
|
|
485
|
-
navigator
|
|
486
|
-
.userAgentData
|
|
487
|
-
.getHighEntropyValues(['brands', 'fullVersionList', 'mobile', 'model', 'platform', 'platformVersion', 'architecture', 'formFactors', 'bitness', 'uaFullVersion', 'wow64'])
|
|
488
|
-
.then(function (result) {
|
|
489
|
-
var brands = result.fullVersionList || result.brands || [];
|
|
490
|
-
var platformVersion = result.platformVersion;
|
|
491
|
-
for (var i = 0; i < brands.length; i++) {
|
|
492
|
-
var brand = normalizeBrand(brands[i]);
|
|
493
|
-
var brandName = brand.brand;
|
|
494
|
-
var brandVersion = brand.version;
|
|
495
|
-
if (/not.a.brand/i.test(brandName))
|
|
496
|
-
continue;
|
|
497
|
-
if (brandName === "Chromium")
|
|
498
|
-
Platform.engineVersion = brandVersion;
|
|
499
|
-
}
|
|
500
|
-
if (typeof platformVersion === 'string') {
|
|
501
|
-
if (Platform.os === OS.Windows && parseInt(platformVersion.replace(/[^\d.]/g, '').split('.')[0], 10) >= 13)
|
|
502
|
-
Platform.osVersion = '11';
|
|
503
|
-
else
|
|
504
|
-
Platform.osVersion = platformVersion;
|
|
581
|
+
catch (_) {
|
|
505
582
|
}
|
|
506
|
-
|
|
583
|
+
finally {
|
|
584
|
+
}
|
|
585
|
+
}
|
|
586
|
+
if (Platform.isNode) {
|
|
587
|
+
try {
|
|
588
|
+
var os = require('os');
|
|
589
|
+
var platform = os.platform();
|
|
590
|
+
var release = os.release();
|
|
591
|
+
var version = getSemanticVersion(release);
|
|
592
|
+
switch (platform) {
|
|
593
|
+
case 'win32':
|
|
594
|
+
Platform.os = {
|
|
595
|
+
name: OS.Windows,
|
|
596
|
+
version: resolveSemanticWindowsVersion(version, release),
|
|
597
|
+
};
|
|
598
|
+
break;
|
|
599
|
+
case 'darwin':
|
|
600
|
+
Platform.os = {
|
|
601
|
+
name: OS.MacOS,
|
|
602
|
+
version: resolveSemanticDarwinVersion(version, release),
|
|
603
|
+
};
|
|
604
|
+
break;
|
|
605
|
+
case 'android':
|
|
606
|
+
Platform.os = {
|
|
607
|
+
name: OS.Android,
|
|
608
|
+
version: release,
|
|
609
|
+
};
|
|
610
|
+
break;
|
|
611
|
+
case 'linux':
|
|
612
|
+
if (/android/i.test(release)) {
|
|
613
|
+
Platform.os = {
|
|
614
|
+
name: OS.Android,
|
|
615
|
+
version: release,
|
|
616
|
+
};
|
|
617
|
+
}
|
|
618
|
+
break;
|
|
619
|
+
}
|
|
620
|
+
}
|
|
621
|
+
catch (_) {
|
|
622
|
+
}
|
|
623
|
+
finally {
|
|
624
|
+
}
|
|
625
|
+
}
|
|
626
|
+
if (typeof globalThis.document !== 'undefined') {
|
|
627
|
+
if (typeof globalThis.device !== 'undefined') {
|
|
628
|
+
parseOSFromCordova();
|
|
629
|
+
}
|
|
630
|
+
else {
|
|
631
|
+
globalThis.document.addEventListener("deviceready", parseOSFromCordova, false);
|
|
632
|
+
}
|
|
633
|
+
}
|
|
634
|
+
if (canUseHighEntropyValues(globalThis.navigator)) {
|
|
635
|
+
globalThis
|
|
636
|
+
.navigator
|
|
637
|
+
.userAgentData
|
|
638
|
+
.getHighEntropyValues(['brands', 'fullVersionList', 'mobile', 'model', 'platform', 'platformVersion', 'architecture', 'formFactors', 'bitness', 'uaFullVersion', 'wow64'])
|
|
639
|
+
.then(function (result) {
|
|
640
|
+
var brands = result.fullVersionList || result.brands || [];
|
|
641
|
+
var platformVersion = result.platformVersion;
|
|
642
|
+
var platform = result.platform;
|
|
643
|
+
var browserName = Platform.browser.name;
|
|
644
|
+
var prevBrandName = null;
|
|
645
|
+
for (var i = 0; i < brands.length; i++) {
|
|
646
|
+
var brand = normalizeBrand(brands[i]);
|
|
647
|
+
var brandVersion = brand.version;
|
|
648
|
+
var brandName = brand.brand;
|
|
649
|
+
if (/not.a.brand/i.test(brandName))
|
|
650
|
+
continue;
|
|
651
|
+
if (prevBrandName === null || (/Chrom/.test(prevBrandName) && brandName !== 'Chromium') || (prevBrandName === 'Edge' && /WebView2/.test(brandName))) {
|
|
652
|
+
brandName = HIGH_ENTROPY_BRAND_NAME_MAP[brandName] || brandName;
|
|
653
|
+
prevBrandName = browserName;
|
|
654
|
+
if (prevBrandName === null || /Chrom/.test(prevBrandName) || !/Chrom/.test(brandName)) {
|
|
655
|
+
browserName = brandName;
|
|
656
|
+
if (browserName === 'Chrome' || browserName === 'Chrome WebView' || browserName === 'Chrome Headless')
|
|
657
|
+
Platform.browser.name = Browsers.Chrome;
|
|
658
|
+
else if (browserName === 'Edge' || browserName === 'Edge WebView2')
|
|
659
|
+
Platform.browser.name = Browsers.Edge;
|
|
660
|
+
else if (browserName === 'Opera Mobi')
|
|
661
|
+
Platform.browser.name = Browsers.Opera;
|
|
662
|
+
Platform.browser.version = brandVersion;
|
|
663
|
+
}
|
|
664
|
+
prevBrandName = brandName;
|
|
665
|
+
}
|
|
666
|
+
if (brandName === 'Chromium')
|
|
667
|
+
Platform.engine.version = brandVersion;
|
|
668
|
+
}
|
|
669
|
+
if (typeof platformVersion === 'string') {
|
|
670
|
+
if (Platform.os.name === OS.Windows)
|
|
671
|
+
Platform.os.version = parseInt(platformVersion.split('.')[0], 10) >= 13 ? '11' : '10';
|
|
672
|
+
else
|
|
673
|
+
Platform.os.version = platformVersion;
|
|
674
|
+
}
|
|
675
|
+
if (typeof platform === 'string') {
|
|
676
|
+
if (/android/i.test(platform))
|
|
677
|
+
Platform.os.name = OS.Android;
|
|
678
|
+
else if (/ios|iphone|ipad/i.test(platform))
|
|
679
|
+
Platform.os.name = OS.iOS;
|
|
680
|
+
else if (/windows|win32/i.test(platform))
|
|
681
|
+
Platform.os.name = OS.Windows;
|
|
682
|
+
else if (/macos|macintel/i.test(platform))
|
|
683
|
+
Platform.os.name = OS.MacOS;
|
|
684
|
+
}
|
|
685
|
+
if (result.mobile === true)
|
|
686
|
+
Platform.device = Devices.Mobile;
|
|
687
|
+
});
|
|
688
|
+
}
|
|
507
689
|
}
|
|
508
|
-
|
|
509
|
-
Platform.isMobile = Platform.device === Devices.Mobile;
|
|
510
|
-
Platform.isDesktop = Platform.device === Devices.Desktop;
|
|
511
|
-
Platform.isStandalone = getIsStandalone(Platform.os);
|
|
690
|
+
init();
|
|
512
691
|
|
|
513
692
|
var Fullscreen = {
|
|
514
693
|
get enabled() {
|
|
@@ -603,7 +782,7 @@
|
|
|
603
782
|
throw new Error();
|
|
604
783
|
return allWindows[0];
|
|
605
784
|
}
|
|
606
|
-
if (Platform.os === OS.iOS) {
|
|
785
|
+
if (Platform.os.name === OS.iOS) {
|
|
607
786
|
var video = globalThis.document.querySelector('video');
|
|
608
787
|
if (video === null)
|
|
609
788
|
throw new Error();
|
|
@@ -684,7 +863,7 @@
|
|
|
684
863
|
if (typeof globalThis.document !== 'undefined')
|
|
685
864
|
globalThis.document.addEventListener(errorEvents[i], emitError, false);
|
|
686
865
|
}
|
|
687
|
-
if (
|
|
866
|
+
if (Platform.os.name === OS.iOS) {
|
|
688
867
|
bridgeIOSVideoEvents();
|
|
689
868
|
if (typeof globalThis.MutationObserver !== 'undefined') {
|
|
690
869
|
var observer = new MutationObserver(function () {
|
|
@@ -720,7 +899,7 @@
|
|
|
720
899
|
}
|
|
721
900
|
}
|
|
722
901
|
if (api === null) {
|
|
723
|
-
if (
|
|
902
|
+
if (Platform.os.name !== OS.iOS)
|
|
724
903
|
return false;
|
|
725
904
|
var videos = globalThis.document.querySelectorAll('video');
|
|
726
905
|
for (var i = 0; i < videos.length; i++) {
|
|
@@ -744,7 +923,7 @@
|
|
|
744
923
|
var allWindows = electron.BrowserWindow.getAllWindows();
|
|
745
924
|
for (var i = 0; i < allWindows.length; i++) {
|
|
746
925
|
var currentWindow = allWindows[i];
|
|
747
|
-
if (currentWindow.isFullScreen() || (Platform.os === OS.MacOS && typeof currentWindow.isSimpleFullScreen === 'function' && currentWindow.isSimpleFullScreen()))
|
|
926
|
+
if (currentWindow.isFullScreen() || (Platform.os.name === OS.MacOS && typeof currentWindow.isSimpleFullScreen === 'function' && currentWindow.isSimpleFullScreen()))
|
|
748
927
|
return currentWindow;
|
|
749
928
|
}
|
|
750
929
|
return null;
|
|
@@ -802,7 +981,7 @@
|
|
|
802
981
|
resolve();
|
|
803
982
|
})
|
|
804
983
|
.catch(function () {
|
|
805
|
-
if (
|
|
984
|
+
if (Platform.os.name !== OS.iOS) {
|
|
806
985
|
reject();
|
|
807
986
|
return;
|
|
808
987
|
}
|
|
@@ -816,7 +995,7 @@
|
|
|
816
995
|
}
|
|
817
996
|
}
|
|
818
997
|
catch (error) {
|
|
819
|
-
if (
|
|
998
|
+
if (Platform.os.name !== OS.iOS) {
|
|
820
999
|
reject();
|
|
821
1000
|
return;
|
|
822
1001
|
}
|
|
@@ -824,7 +1003,7 @@
|
|
|
824
1003
|
}
|
|
825
1004
|
}
|
|
826
1005
|
function fallbackToIOSVideo() {
|
|
827
|
-
if (
|
|
1006
|
+
if (Platform.os.name === OS.iOS && target.tagName.toUpperCase() === 'VIDEO') {
|
|
828
1007
|
var video = target;
|
|
829
1008
|
if (video.webkitSupportsFullscreen && typeof video.webkitEnterFullscreen === 'function') {
|
|
830
1009
|
lastIOSVideo = video;
|
|
@@ -880,7 +1059,7 @@
|
|
|
880
1059
|
}
|
|
881
1060
|
}
|
|
882
1061
|
}
|
|
883
|
-
if (
|
|
1062
|
+
if (Platform.os.name === OS.iOS && lastIOSVideo !== null) {
|
|
884
1063
|
if (typeof lastIOSVideo.webkitExitFullscreen === 'function' && lastIOSVideo.webkitDisplayingFullscreen === true) {
|
|
885
1064
|
lastIOSVideo.webkitExitFullscreen();
|
|
886
1065
|
lastIOSVideo = null;
|