native-fn 1.0.47 → 1.0.49

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