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