native-fn 1.0.46 → 1.0.48

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.
Files changed (43) hide show
  1. package/dist/native.cjs +173 -92
  2. package/dist/native.min.cjs +1 -1
  3. package/dist/native.min.mjs +1 -1
  4. package/dist/native.mjs +173 -92
  5. package/dist/native.umd.js +173 -92
  6. package/dist/native.umd.min.js +1 -1
  7. package/dist/plugin/app/index.cjs +192 -90
  8. package/dist/plugin/app/index.min.cjs +1 -1
  9. package/dist/plugin/app/index.min.mjs +1 -1
  10. package/dist/plugin/app/index.mjs +192 -90
  11. package/dist/plugin/app/index.umd.js +192 -90
  12. package/dist/plugin/app/index.umd.min.js +1 -1
  13. package/dist/plugin/app/src/types/platform.d.ts +3 -1
  14. package/dist/plugin/app/src/utils/require.d.ts +1 -1
  15. package/dist/plugin/camera/index.cjs +171 -90
  16. package/dist/plugin/camera/index.min.cjs +1 -1
  17. package/dist/plugin/camera/index.min.mjs +1 -1
  18. package/dist/plugin/camera/index.mjs +171 -90
  19. package/dist/plugin/camera/index.umd.js +171 -90
  20. package/dist/plugin/camera/index.umd.min.js +1 -1
  21. package/dist/plugin/camera/src/types/platform.d.ts +3 -1
  22. package/dist/plugin/camera/src/utils/require.d.ts +1 -1
  23. package/dist/plugin/clipboard/src/types/platform.d.ts +3 -1
  24. package/dist/plugin/clipboard/src/utils/require.d.ts +1 -1
  25. package/dist/plugin/fullscreen/index.cjs +171 -90
  26. package/dist/plugin/fullscreen/index.min.cjs +1 -1
  27. package/dist/plugin/fullscreen/index.min.mjs +1 -1
  28. package/dist/plugin/fullscreen/index.mjs +171 -90
  29. package/dist/plugin/fullscreen/index.umd.js +171 -90
  30. package/dist/plugin/fullscreen/index.umd.min.js +1 -1
  31. package/dist/plugin/fullscreen/src/types/platform.d.ts +3 -1
  32. package/dist/plugin/fullscreen/src/utils/require.d.ts +1 -1
  33. package/dist/plugin/theme/index.cjs +171 -90
  34. package/dist/plugin/theme/index.min.cjs +1 -1
  35. package/dist/plugin/theme/index.min.mjs +1 -1
  36. package/dist/plugin/theme/index.mjs +171 -90
  37. package/dist/plugin/theme/index.umd.js +171 -90
  38. package/dist/plugin/theme/index.umd.min.js +1 -1
  39. package/dist/plugin/theme/src/types/platform.d.ts +3 -1
  40. package/dist/plugin/theme/src/utils/require.d.ts +1 -1
  41. package/dist/src/types/platform.d.ts +3 -1
  42. package/dist/src/utils/require.d.ts +1 -1
  43. package/package.json +1 -1
@@ -1,15 +1,3 @@
1
- function require(moduleName) {
2
- if ('require' in globalThis && typeof globalThis.require === 'function') {
3
- try {
4
- return Promise.resolve(globalThis.require(moduleName));
5
- }
6
- catch (_) {
7
- return Promise.resolve(null);
8
- }
9
- }
10
- return Promise.resolve(null);
11
- }
12
-
13
1
  var OS;
14
2
  (function (OS) {
15
3
  OS["Unknown"] = "Unknown";
@@ -49,6 +37,7 @@ var Browsers;
49
37
  Browsers["IE"] = "IE";
50
38
  Browsers["SamsungInternet"] = "SamsungInternet";
51
39
  })(Browsers || (Browsers = {}));
40
+ var userAgent = typeof navigator !== 'undefined' && typeof navigator.userAgent === 'string' ? navigator.userAgent : '';
52
41
  var Platform = {
53
42
  device: Devices.Unknown,
54
43
  os: OS.Unknown,
@@ -58,12 +47,14 @@ var Platform = {
58
47
  browser: Browsers.Unknown,
59
48
  browserVersion: '',
60
49
  renderer: getRenderer(),
61
- userAgent: getUserAgent(),
62
- isWebview: false,
50
+ userAgent: userAgent,
63
51
  isMobile: false,
64
52
  isDesktop: false,
65
53
  isStandalone: false,
66
- isNodeJS: getIsNode(),
54
+ isWebview: /; ?wv|applewebkit(?!.*safari)/i.test(userAgent),
55
+ isNodeJS: typeof globalThis.process !== 'undefined' && typeof globalThis.process.versions !== 'undefined' && globalThis.process.versions.node !== undefined,
56
+ isElectron: typeof globalThis.process !== 'undefined' && typeof globalThis.process.versions !== 'undefined' && globalThis.process.versions.electron !== undefined,
57
+ isReactNative: typeof navigator !== 'undefined' && navigator.product === 'ReactNative'
67
58
  };
68
59
  var OS_RESOLVER_MAP = [
69
60
  [/windows nt (6\.[23]); arm/i, OS.Windows, resolveWindowsVersion],
@@ -150,6 +141,137 @@ function resolveUnderscoreVersion(string) {
150
141
  return '';
151
142
  return string.replace(/_/g, '.');
152
143
  }
144
+ function resolveSemanticWindowsVersion(version, defaultValue) {
145
+ if (version.major === 10 && version.minor === 0 && version.build >= 22000)
146
+ return '11';
147
+ if (version.major === 10 && version.minor === 0 && version.build < 22000)
148
+ return '10';
149
+ if (version.major === 6 && version.minor === 3)
150
+ return '8.1';
151
+ if (version.major === 6 && version.minor === 2)
152
+ return '8';
153
+ if (version.major === 6 && version.minor === 1)
154
+ return '7';
155
+ if (version.major === 6 && version.minor === 0)
156
+ return 'Vista';
157
+ if (version.major === 5 && version.minor === 1)
158
+ return 'XP';
159
+ if (version.major === 5 && version.minor === 2)
160
+ return 'XP';
161
+ if (version.major === 5 && version.minor === 0)
162
+ return '2000';
163
+ if (version.major === 4 && version.minor === 90)
164
+ return 'ME';
165
+ if (version.major === 4 && version.minor === 0)
166
+ return 'NT 4.0';
167
+ if (version.major === 3 && version.minor === 51)
168
+ return 'NT 3.11';
169
+ return defaultValue;
170
+ }
171
+ function resolveSemanticDarwinVersion(version, defaultValue) {
172
+ if (version.major >= 24)
173
+ return '' + (version.major - 9) + '.' + version.minor + '.' + version.build;
174
+ if (version.major === 23)
175
+ return '14.' + version.minor + '.' + version.build;
176
+ if (version.major === 22)
177
+ return '13.' + version.minor + '.' + version.build;
178
+ if (version.major === 21)
179
+ return '12.' + version.minor + '.' + version.build;
180
+ if (version.major === 20)
181
+ return '11.' + version.minor + '.' + version.build;
182
+ if (version.major === 19)
183
+ return '10.15.' + version.minor;
184
+ if (version.major === 18)
185
+ return '10.14.' + version.minor;
186
+ if (version.major === 17)
187
+ return '10.13.' + version.minor;
188
+ if (version.major === 16)
189
+ return '10.12.' + version.minor;
190
+ if (version.major === 15)
191
+ return '10.11.' + version.minor;
192
+ if (version.major === 14)
193
+ return '10.10.' + version.minor;
194
+ if (version.major === 13)
195
+ return '10.9.' + version.minor;
196
+ if (version.major >= 5 && version.major <= 12)
197
+ return '10.' + (version.major - 4) + '.' + version.minor;
198
+ return defaultValue;
199
+ }
200
+ function resolveSemanticAndroidVersion(version, defaultValue) {
201
+ if (version.major >= 36)
202
+ return '16';
203
+ if (version.major === 35)
204
+ return '15';
205
+ if (version.major === 34)
206
+ return '14';
207
+ if (version.major === 33)
208
+ return '13';
209
+ if (version.major === 32)
210
+ return '12.1';
211
+ if (version.major === 31)
212
+ return '12';
213
+ if (version.major === 30)
214
+ return '11';
215
+ if (version.major === 29)
216
+ return '10';
217
+ if (version.major === 28)
218
+ return '9';
219
+ if (version.major === 27)
220
+ return '8.1';
221
+ if (version.major === 26)
222
+ return '8.0';
223
+ if (version.major === 25)
224
+ return '7.1';
225
+ if (version.major === 24)
226
+ return '7.0';
227
+ if (version.major === 23)
228
+ return '6.0';
229
+ if (version.major === 22)
230
+ return '5.1';
231
+ if (version.major === 21)
232
+ return '5.0';
233
+ if (version.major === 20)
234
+ return '4.4W';
235
+ if (version.major === 19)
236
+ return '4.4';
237
+ if (version.major === 18)
238
+ return '4.3';
239
+ if (version.major === 17)
240
+ return '4.2';
241
+ if (version.major === 16)
242
+ return '4.1';
243
+ if (version.major === 15)
244
+ return '4.0.3';
245
+ if (version.major === 14)
246
+ return '4.0';
247
+ if (version.major === 13)
248
+ return '3.2';
249
+ if (version.major === 12)
250
+ return '3.1';
251
+ if (version.major === 11)
252
+ return '3.0';
253
+ if (version.major === 10)
254
+ return '2.3.3';
255
+ if (version.major === 9)
256
+ return '2.3';
257
+ if (version.major === 8)
258
+ return '2.2';
259
+ if (version.major === 7)
260
+ return '2.1';
261
+ if (version.major === 6)
262
+ return '2.0.1';
263
+ if (version.major === 5)
264
+ return '2.0';
265
+ if (version.major === 4)
266
+ return '1.6';
267
+ if (version.major === 3)
268
+ return '1.5';
269
+ if (version.major === 2)
270
+ return '1.1';
271
+ if (version.major === 1)
272
+ return '1.0';
273
+ return defaultValue;
274
+ }
153
275
  function resolveVersion(string, resolver) {
154
276
  if (typeof resolver === 'function')
155
277
  return resolver(string);
@@ -166,11 +288,6 @@ function normalizeBrand(entry) {
166
288
  return { brand: entry, version: '' };
167
289
  return { brand: entry.brand, version: entry.version };
168
290
  }
169
- function getUserAgent() {
170
- if (typeof navigator !== 'undefined' && typeof navigator.userAgent === 'string')
171
- return navigator.userAgent;
172
- return '';
173
- }
174
291
  function getRenderer() {
175
292
  if (typeof globalThis.document === 'undefined')
176
293
  return '';
@@ -201,10 +318,7 @@ function getIsStandalone(os) {
201
318
  function getIsWebview() {
202
319
  return /; ?wv|applewebkit(?!.*safari)/i.test(Platform.userAgent);
203
320
  }
204
- function getIsNode() {
205
- return typeof globalThis.process !== 'undefined' && typeof globalThis.process.versions !== 'undefined' && globalThis.process.versions.node !== undefined;
206
- }
207
- function getNodeOSVersion(string) {
321
+ function getSemanticVersion(string) {
208
322
  var parts = string.split('.');
209
323
  return {
210
324
  major: parseInt(parts[0] || '0'),
@@ -252,84 +366,49 @@ for (var i = 0; i < BROWSER_RESOLVER_MAP.length; i++) {
252
366
  break;
253
367
  }
254
368
  }
255
- if (typeof navigator !== 'undefined' && navigator.product === 'ReactNative') {
369
+ if (Platform.isReactNative) {
256
370
  try {
257
- import('react-native')
258
- .then(function (reactNative) {
259
- console.log(reactNative.Platform);
260
- });
371
+ var reactNative = require('react-native');
372
+ var platform = reactNative.Platform;
373
+ var os = platform.OS;
374
+ var release = platform.Version;
375
+ var version = getSemanticVersion(release);
376
+ switch (os) {
377
+ case 'android':
378
+ Platform.os = OS.Android;
379
+ Platform.osVersion = resolveSemanticAndroidVersion(version, release);
380
+ break;
381
+ case 'ios':
382
+ Platform.os = OS.iOS;
383
+ Platform.osVersion = release;
384
+ break;
385
+ case 'windows':
386
+ Platform.os = OS.Windows;
387
+ Platform.osVersion = resolveSemanticWindowsVersion(version, release);
388
+ break;
389
+ case 'macos':
390
+ Platform.os = OS.MacOS;
391
+ Platform.osVersion = release;
392
+ break;
393
+ }
261
394
  }
262
395
  catch (_) {
263
396
  }
264
397
  }
265
- else if (Platform.isNodeJS) {
266
- require('os')
267
- .then(function (os) {
268
- if (os === null)
269
- return;
398
+ if (Platform.isNodeJS) {
399
+ try {
400
+ var os = require('os');
270
401
  var platform = os.platform();
271
402
  var release = os.release();
272
- var version = getNodeOSVersion(release);
403
+ var version = getSemanticVersion(release);
273
404
  switch (platform) {
274
405
  case 'win32':
275
406
  Platform.os = OS.Windows;
276
- if (version.major === 10 && version.minor === 0 && version.build >= 22000)
277
- Platform.osVersion = '11';
278
- else if (version.major === 10 && version.minor === 0 && version.build < 22000)
279
- Platform.osVersion = '10';
280
- else if (version.major === 6 && version.minor === 3)
281
- Platform.osVersion = '8.1';
282
- else if (version.major === 6 && version.minor === 2)
283
- Platform.osVersion = '8';
284
- else if (version.major === 6 && version.minor === 1)
285
- Platform.osVersion = '7';
286
- else if (version.major === 6 && version.minor === 0)
287
- Platform.osVersion = 'Vista';
288
- else if (version.major === 5 && version.minor === 1)
289
- Platform.osVersion = 'XP';
290
- else if (version.major === 5 && version.minor === 2)
291
- Platform.osVersion = 'XP';
292
- else if (version.major === 5 && version.minor === 0)
293
- Platform.osVersion = '2000';
294
- else if (version.major === 4 && version.minor === 90)
295
- Platform.osVersion = 'ME';
296
- else if (version.major === 4 && version.minor === 0)
297
- Platform.osVersion = 'NT 4.0';
298
- else if (version.major === 3 && version.minor === 51)
299
- Platform.osVersion = 'NT 3.11';
300
- else
301
- Platform.osVersion = release;
407
+ Platform.osVersion = resolveSemanticWindowsVersion(version, release);
302
408
  break;
303
409
  case 'darwin':
304
410
  Platform.os = OS.MacOS;
305
- if (version.major >= 24)
306
- Platform.osVersion = '' + (version.major - 9) + '.' + version.minor + '.' + version.build;
307
- else if (version.major === 23)
308
- Platform.osVersion = '14.' + version.minor + '.' + version.build;
309
- else if (version.major === 22)
310
- Platform.osVersion = '13.' + version.minor + '.' + version.build;
311
- else if (version.major === 21)
312
- Platform.osVersion = '12.' + version.minor + '.' + version.build;
313
- else if (version.major === 20)
314
- Platform.osVersion = '11.' + version.minor + '.' + version.build;
315
- else if (version.major === 19)
316
- Platform.osVersion = '10.15.' + version.minor;
317
- else if (version.major === 18)
318
- Platform.osVersion = '10.14.' + version.minor;
319
- else if (version.major === 17)
320
- Platform.osVersion = '10.13.' + version.minor;
321
- else if (version.major === 16)
322
- Platform.osVersion = '10.12.' + version.minor;
323
- else if (version.major === 15)
324
- Platform.osVersion = '10.11.' + version.minor;
325
- else if (version.major === 14)
326
- Platform.osVersion = '10.10.' + version.minor;
327
- else if (version.major === 13)
328
- Platform.osVersion = '10.9.' + version.minor;
329
- else if (version.major >= 5 && version.major <= 12)
330
- Platform.osVersion = '10.' + (version.major - 4) + '.' + version.minor;
331
- else
332
- Platform.osVersion = release;
411
+ Platform.osVersion = resolveSemanticDarwinVersion(version, release);
333
412
  break;
334
413
  case 'android':
335
414
  Platform.os = OS.Android;
@@ -342,7 +421,9 @@ else if (Platform.isNodeJS) {
342
421
  }
343
422
  break;
344
423
  }
345
- });
424
+ }
425
+ catch (_) {
426
+ }
346
427
  }
347
428
  if (navigator.userAgentData !== undefined && navigator.userAgentData.getHighEntropyValues !== undefined) {
348
429
  navigator
@@ -4,18 +4,6 @@
4
4
  (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.Fullscreen = factory());
5
5
  })(this, (function () { 'use strict';
6
6
 
7
- function require(moduleName) {
8
- if ('require' in globalThis && typeof globalThis.require === 'function') {
9
- try {
10
- return Promise.resolve(globalThis.require(moduleName));
11
- }
12
- catch (_) {
13
- return Promise.resolve(null);
14
- }
15
- }
16
- return Promise.resolve(null);
17
- }
18
-
19
7
  var OS;
20
8
  (function (OS) {
21
9
  OS["Unknown"] = "Unknown";
@@ -55,6 +43,7 @@
55
43
  Browsers["IE"] = "IE";
56
44
  Browsers["SamsungInternet"] = "SamsungInternet";
57
45
  })(Browsers || (Browsers = {}));
46
+ var userAgent = typeof navigator !== 'undefined' && typeof navigator.userAgent === 'string' ? navigator.userAgent : '';
58
47
  var Platform = {
59
48
  device: Devices.Unknown,
60
49
  os: OS.Unknown,
@@ -64,12 +53,14 @@
64
53
  browser: Browsers.Unknown,
65
54
  browserVersion: '',
66
55
  renderer: getRenderer(),
67
- userAgent: getUserAgent(),
68
- isWebview: false,
56
+ userAgent: userAgent,
69
57
  isMobile: false,
70
58
  isDesktop: false,
71
59
  isStandalone: false,
72
- isNodeJS: getIsNode(),
60
+ isWebview: /; ?wv|applewebkit(?!.*safari)/i.test(userAgent),
61
+ isNodeJS: typeof globalThis.process !== 'undefined' && typeof globalThis.process.versions !== 'undefined' && globalThis.process.versions.node !== undefined,
62
+ isElectron: typeof globalThis.process !== 'undefined' && typeof globalThis.process.versions !== 'undefined' && globalThis.process.versions.electron !== undefined,
63
+ isReactNative: typeof navigator !== 'undefined' && navigator.product === 'ReactNative'
73
64
  };
74
65
  var OS_RESOLVER_MAP = [
75
66
  [/windows nt (6\.[23]); arm/i, OS.Windows, resolveWindowsVersion],
@@ -156,6 +147,137 @@
156
147
  return '';
157
148
  return string.replace(/_/g, '.');
158
149
  }
150
+ function resolveSemanticWindowsVersion(version, defaultValue) {
151
+ if (version.major === 10 && version.minor === 0 && version.build >= 22000)
152
+ return '11';
153
+ if (version.major === 10 && version.minor === 0 && version.build < 22000)
154
+ return '10';
155
+ if (version.major === 6 && version.minor === 3)
156
+ return '8.1';
157
+ if (version.major === 6 && version.minor === 2)
158
+ return '8';
159
+ if (version.major === 6 && version.minor === 1)
160
+ return '7';
161
+ if (version.major === 6 && version.minor === 0)
162
+ return 'Vista';
163
+ if (version.major === 5 && version.minor === 1)
164
+ return 'XP';
165
+ if (version.major === 5 && version.minor === 2)
166
+ return 'XP';
167
+ if (version.major === 5 && version.minor === 0)
168
+ return '2000';
169
+ if (version.major === 4 && version.minor === 90)
170
+ return 'ME';
171
+ if (version.major === 4 && version.minor === 0)
172
+ return 'NT 4.0';
173
+ if (version.major === 3 && version.minor === 51)
174
+ return 'NT 3.11';
175
+ return defaultValue;
176
+ }
177
+ function resolveSemanticDarwinVersion(version, defaultValue) {
178
+ if (version.major >= 24)
179
+ return '' + (version.major - 9) + '.' + version.minor + '.' + version.build;
180
+ if (version.major === 23)
181
+ return '14.' + version.minor + '.' + version.build;
182
+ if (version.major === 22)
183
+ return '13.' + version.minor + '.' + version.build;
184
+ if (version.major === 21)
185
+ return '12.' + version.minor + '.' + version.build;
186
+ if (version.major === 20)
187
+ return '11.' + version.minor + '.' + version.build;
188
+ if (version.major === 19)
189
+ return '10.15.' + version.minor;
190
+ if (version.major === 18)
191
+ return '10.14.' + version.minor;
192
+ if (version.major === 17)
193
+ return '10.13.' + version.minor;
194
+ if (version.major === 16)
195
+ return '10.12.' + version.minor;
196
+ if (version.major === 15)
197
+ return '10.11.' + version.minor;
198
+ if (version.major === 14)
199
+ return '10.10.' + version.minor;
200
+ if (version.major === 13)
201
+ return '10.9.' + version.minor;
202
+ if (version.major >= 5 && version.major <= 12)
203
+ return '10.' + (version.major - 4) + '.' + version.minor;
204
+ return defaultValue;
205
+ }
206
+ function resolveSemanticAndroidVersion(version, defaultValue) {
207
+ if (version.major >= 36)
208
+ return '16';
209
+ if (version.major === 35)
210
+ return '15';
211
+ if (version.major === 34)
212
+ return '14';
213
+ if (version.major === 33)
214
+ return '13';
215
+ if (version.major === 32)
216
+ return '12.1';
217
+ if (version.major === 31)
218
+ return '12';
219
+ if (version.major === 30)
220
+ return '11';
221
+ if (version.major === 29)
222
+ return '10';
223
+ if (version.major === 28)
224
+ return '9';
225
+ if (version.major === 27)
226
+ return '8.1';
227
+ if (version.major === 26)
228
+ return '8.0';
229
+ if (version.major === 25)
230
+ return '7.1';
231
+ if (version.major === 24)
232
+ return '7.0';
233
+ if (version.major === 23)
234
+ return '6.0';
235
+ if (version.major === 22)
236
+ return '5.1';
237
+ if (version.major === 21)
238
+ return '5.0';
239
+ if (version.major === 20)
240
+ return '4.4W';
241
+ if (version.major === 19)
242
+ return '4.4';
243
+ if (version.major === 18)
244
+ return '4.3';
245
+ if (version.major === 17)
246
+ return '4.2';
247
+ if (version.major === 16)
248
+ return '4.1';
249
+ if (version.major === 15)
250
+ return '4.0.3';
251
+ if (version.major === 14)
252
+ return '4.0';
253
+ if (version.major === 13)
254
+ return '3.2';
255
+ if (version.major === 12)
256
+ return '3.1';
257
+ if (version.major === 11)
258
+ return '3.0';
259
+ if (version.major === 10)
260
+ return '2.3.3';
261
+ if (version.major === 9)
262
+ return '2.3';
263
+ if (version.major === 8)
264
+ return '2.2';
265
+ if (version.major === 7)
266
+ return '2.1';
267
+ if (version.major === 6)
268
+ return '2.0.1';
269
+ if (version.major === 5)
270
+ return '2.0';
271
+ if (version.major === 4)
272
+ return '1.6';
273
+ if (version.major === 3)
274
+ return '1.5';
275
+ if (version.major === 2)
276
+ return '1.1';
277
+ if (version.major === 1)
278
+ return '1.0';
279
+ return defaultValue;
280
+ }
159
281
  function resolveVersion(string, resolver) {
160
282
  if (typeof resolver === 'function')
161
283
  return resolver(string);
@@ -172,11 +294,6 @@
172
294
  return { brand: entry, version: '' };
173
295
  return { brand: entry.brand, version: entry.version };
174
296
  }
175
- function getUserAgent() {
176
- if (typeof navigator !== 'undefined' && typeof navigator.userAgent === 'string')
177
- return navigator.userAgent;
178
- return '';
179
- }
180
297
  function getRenderer() {
181
298
  if (typeof globalThis.document === 'undefined')
182
299
  return '';
@@ -207,10 +324,7 @@
207
324
  function getIsWebview() {
208
325
  return /; ?wv|applewebkit(?!.*safari)/i.test(Platform.userAgent);
209
326
  }
210
- function getIsNode() {
211
- return typeof globalThis.process !== 'undefined' && typeof globalThis.process.versions !== 'undefined' && globalThis.process.versions.node !== undefined;
212
- }
213
- function getNodeOSVersion(string) {
327
+ function getSemanticVersion(string) {
214
328
  var parts = string.split('.');
215
329
  return {
216
330
  major: parseInt(parts[0] || '0'),
@@ -258,84 +372,49 @@
258
372
  break;
259
373
  }
260
374
  }
261
- if (typeof navigator !== 'undefined' && navigator.product === 'ReactNative') {
375
+ if (Platform.isReactNative) {
262
376
  try {
263
- import('react-native')
264
- .then(function (reactNative) {
265
- console.log(reactNative.Platform);
266
- });
377
+ var reactNative = require('react-native');
378
+ var platform = reactNative.Platform;
379
+ var os = platform.OS;
380
+ var release = platform.Version;
381
+ var version = getSemanticVersion(release);
382
+ switch (os) {
383
+ case 'android':
384
+ Platform.os = OS.Android;
385
+ Platform.osVersion = resolveSemanticAndroidVersion(version, release);
386
+ break;
387
+ case 'ios':
388
+ Platform.os = OS.iOS;
389
+ Platform.osVersion = release;
390
+ break;
391
+ case 'windows':
392
+ Platform.os = OS.Windows;
393
+ Platform.osVersion = resolveSemanticWindowsVersion(version, release);
394
+ break;
395
+ case 'macos':
396
+ Platform.os = OS.MacOS;
397
+ Platform.osVersion = release;
398
+ break;
399
+ }
267
400
  }
268
401
  catch (_) {
269
402
  }
270
403
  }
271
- else if (Platform.isNodeJS) {
272
- require('os')
273
- .then(function (os) {
274
- if (os === null)
275
- return;
404
+ if (Platform.isNodeJS) {
405
+ try {
406
+ var os = require('os');
276
407
  var platform = os.platform();
277
408
  var release = os.release();
278
- var version = getNodeOSVersion(release);
409
+ var version = getSemanticVersion(release);
279
410
  switch (platform) {
280
411
  case 'win32':
281
412
  Platform.os = OS.Windows;
282
- if (version.major === 10 && version.minor === 0 && version.build >= 22000)
283
- Platform.osVersion = '11';
284
- else if (version.major === 10 && version.minor === 0 && version.build < 22000)
285
- Platform.osVersion = '10';
286
- else if (version.major === 6 && version.minor === 3)
287
- Platform.osVersion = '8.1';
288
- else if (version.major === 6 && version.minor === 2)
289
- Platform.osVersion = '8';
290
- else if (version.major === 6 && version.minor === 1)
291
- Platform.osVersion = '7';
292
- else if (version.major === 6 && version.minor === 0)
293
- Platform.osVersion = 'Vista';
294
- else if (version.major === 5 && version.minor === 1)
295
- Platform.osVersion = 'XP';
296
- else if (version.major === 5 && version.minor === 2)
297
- Platform.osVersion = 'XP';
298
- else if (version.major === 5 && version.minor === 0)
299
- Platform.osVersion = '2000';
300
- else if (version.major === 4 && version.minor === 90)
301
- Platform.osVersion = 'ME';
302
- else if (version.major === 4 && version.minor === 0)
303
- Platform.osVersion = 'NT 4.0';
304
- else if (version.major === 3 && version.minor === 51)
305
- Platform.osVersion = 'NT 3.11';
306
- else
307
- Platform.osVersion = release;
413
+ Platform.osVersion = resolveSemanticWindowsVersion(version, release);
308
414
  break;
309
415
  case 'darwin':
310
416
  Platform.os = OS.MacOS;
311
- if (version.major >= 24)
312
- Platform.osVersion = '' + (version.major - 9) + '.' + version.minor + '.' + version.build;
313
- else if (version.major === 23)
314
- Platform.osVersion = '14.' + version.minor + '.' + version.build;
315
- else if (version.major === 22)
316
- Platform.osVersion = '13.' + version.minor + '.' + version.build;
317
- else if (version.major === 21)
318
- Platform.osVersion = '12.' + version.minor + '.' + version.build;
319
- else if (version.major === 20)
320
- Platform.osVersion = '11.' + version.minor + '.' + version.build;
321
- else if (version.major === 19)
322
- Platform.osVersion = '10.15.' + version.minor;
323
- else if (version.major === 18)
324
- Platform.osVersion = '10.14.' + version.minor;
325
- else if (version.major === 17)
326
- Platform.osVersion = '10.13.' + version.minor;
327
- else if (version.major === 16)
328
- Platform.osVersion = '10.12.' + version.minor;
329
- else if (version.major === 15)
330
- Platform.osVersion = '10.11.' + version.minor;
331
- else if (version.major === 14)
332
- Platform.osVersion = '10.10.' + version.minor;
333
- else if (version.major === 13)
334
- Platform.osVersion = '10.9.' + version.minor;
335
- else if (version.major >= 5 && version.major <= 12)
336
- Platform.osVersion = '10.' + (version.major - 4) + '.' + version.minor;
337
- else
338
- Platform.osVersion = release;
417
+ Platform.osVersion = resolveSemanticDarwinVersion(version, release);
339
418
  break;
340
419
  case 'android':
341
420
  Platform.os = OS.Android;
@@ -348,7 +427,9 @@
348
427
  }
349
428
  break;
350
429
  }
351
- });
430
+ }
431
+ catch (_) {
432
+ }
352
433
  }
353
434
  if (navigator.userAgentData !== undefined && navigator.userAgentData.getHighEntropyValues !== undefined) {
354
435
  navigator