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