native-fn 1.0.42 → 1.0.44

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 (62) hide show
  1. package/dist/native.cjs +372 -11
  2. package/dist/native.min.cjs +1 -1
  3. package/dist/native.min.mjs +1 -1
  4. package/dist/native.mjs +372 -11
  5. package/dist/native.umd.js +372 -11
  6. package/dist/native.umd.min.js +1 -1
  7. package/dist/plugin/app/index.cjs +317 -151
  8. package/dist/plugin/app/index.d.ts +5 -1
  9. package/dist/plugin/app/index.min.cjs +1 -1
  10. package/dist/plugin/app/index.min.mjs +1 -1
  11. package/dist/plugin/app/index.mjs +317 -151
  12. package/dist/plugin/app/index.umd.js +317 -151
  13. package/dist/plugin/app/index.umd.min.js +1 -1
  14. package/dist/plugin/app/src/constants/platform.d.ts +3 -13
  15. package/dist/plugin/app/src/plugin/app/types/app.d.ts +4 -0
  16. package/dist/plugin/app/src/types/platform.d.ts +17 -0
  17. package/dist/plugin/app/src/utils/create-hidden-element.d.ts +1 -1
  18. package/dist/plugin/camera/index.cjs +253 -86
  19. package/dist/plugin/camera/index.min.cjs +1 -1
  20. package/dist/plugin/camera/index.min.mjs +1 -1
  21. package/dist/plugin/camera/index.mjs +253 -86
  22. package/dist/plugin/camera/index.umd.js +253 -86
  23. package/dist/plugin/camera/index.umd.min.js +1 -1
  24. package/dist/plugin/camera/src/constants/platform.d.ts +3 -13
  25. package/dist/plugin/camera/src/plugin/app/types/app.d.ts +4 -0
  26. package/dist/plugin/camera/src/types/platform.d.ts +17 -0
  27. package/dist/plugin/camera/src/utils/create-hidden-element.d.ts +1 -1
  28. package/dist/plugin/clipboard/index.cjs +6 -0
  29. package/dist/plugin/clipboard/index.min.cjs +1 -1
  30. package/dist/plugin/clipboard/index.min.mjs +1 -1
  31. package/dist/plugin/clipboard/index.mjs +6 -0
  32. package/dist/plugin/clipboard/index.umd.js +6 -0
  33. package/dist/plugin/clipboard/index.umd.min.js +1 -1
  34. package/dist/plugin/clipboard/src/constants/platform.d.ts +3 -13
  35. package/dist/plugin/clipboard/src/plugin/app/types/app.d.ts +4 -0
  36. package/dist/plugin/clipboard/src/types/platform.d.ts +17 -0
  37. package/dist/plugin/clipboard/src/utils/create-hidden-element.d.ts +1 -1
  38. package/dist/plugin/fullscreen/index.cjs +246 -82
  39. package/dist/plugin/fullscreen/index.min.cjs +1 -1
  40. package/dist/plugin/fullscreen/index.min.mjs +1 -1
  41. package/dist/plugin/fullscreen/index.mjs +246 -82
  42. package/dist/plugin/fullscreen/index.umd.js +246 -82
  43. package/dist/plugin/fullscreen/index.umd.min.js +1 -1
  44. package/dist/plugin/fullscreen/src/constants/platform.d.ts +3 -13
  45. package/dist/plugin/fullscreen/src/plugin/app/types/app.d.ts +4 -0
  46. package/dist/plugin/fullscreen/src/types/platform.d.ts +17 -0
  47. package/dist/plugin/fullscreen/src/utils/create-hidden-element.d.ts +1 -1
  48. package/dist/plugin/theme/index.cjs +257 -91
  49. package/dist/plugin/theme/index.min.cjs +1 -1
  50. package/dist/plugin/theme/index.min.mjs +1 -1
  51. package/dist/plugin/theme/index.mjs +257 -91
  52. package/dist/plugin/theme/index.umd.js +257 -91
  53. package/dist/plugin/theme/index.umd.min.js +1 -1
  54. package/dist/plugin/theme/src/constants/platform.d.ts +3 -13
  55. package/dist/plugin/theme/src/plugin/app/types/app.d.ts +4 -0
  56. package/dist/plugin/theme/src/types/platform.d.ts +17 -0
  57. package/dist/plugin/theme/src/utils/create-hidden-element.d.ts +1 -1
  58. package/dist/src/constants/platform.d.ts +3 -13
  59. package/dist/src/plugin/app/types/app.d.ts +4 -0
  60. package/dist/src/types/platform.d.ts +17 -0
  61. package/dist/src/utils/create-hidden-element.d.ts +1 -1
  62. package/package.json +1 -8
package/dist/native.mjs CHANGED
@@ -1,4 +1,4 @@
1
- var version = "1.0.42";
1
+ var version = "1.0.44";
2
2
  var packageJSON = {
3
3
  version: version};
4
4
 
@@ -110,14 +110,367 @@ function dynamicImport(moduleName) {
110
110
  return Promise.resolve(null);
111
111
  }
112
112
  }
113
- return import(moduleName)
114
- .then(function (module) {
115
- return (module.default || module);
116
- })
117
- .catch(function () {
113
+ try {
114
+ return import(moduleName)
115
+ .then(function (module) {
116
+ return (module.default || module);
117
+ })
118
+ .catch(function () {
119
+ return Promise.resolve(null);
120
+ });
121
+ }
122
+ catch (_) {
118
123
  return Promise.resolve(null);
124
+ }
125
+ }
126
+
127
+ var OS;
128
+ (function (OS) {
129
+ OS["Unknown"] = "Unknown";
130
+ OS["Android"] = "Android";
131
+ OS["iOS"] = "iOS";
132
+ OS["Windows"] = "Windows";
133
+ OS["MacOS"] = "MacOS";
134
+ })(OS || (OS = {}));
135
+ var Devices;
136
+ (function (Devices) {
137
+ Devices["Unknown"] = "Unknown";
138
+ Devices["Mobile"] = "Mobile";
139
+ Devices["Desktop"] = "Desktop";
140
+ })(Devices || (Devices = {}));
141
+ var Engines;
142
+ (function (Engines) {
143
+ Engines["Unknown"] = "Unknown";
144
+ Engines["EdgeHTML"] = "EdgeHTML";
145
+ Engines["ArkWeb"] = "ArkWeb";
146
+ Engines["Blink"] = "Blink";
147
+ Engines["Presto"] = "Presto";
148
+ Engines["WebKit"] = "WebKit";
149
+ Engines["Trident"] = "Trident";
150
+ Engines["NetFront"] = "NetFront";
151
+ Engines["KHTML"] = "KHTML";
152
+ Engines["Tasman"] = "Tasman";
153
+ Engines["Gecko"] = "Gecko";
154
+ })(Engines || (Engines = {}));
155
+ var Browsers;
156
+ (function (Browsers) {
157
+ Browsers["Unknown"] = "Unknown";
158
+ Browsers["Chrome"] = "Chrome";
159
+ Browsers["Safari"] = "Safari";
160
+ Browsers["Edge"] = "Edge";
161
+ Browsers["Firefox"] = "Firefox";
162
+ Browsers["Opera"] = "Opera";
163
+ Browsers["IE"] = "IE";
164
+ Browsers["SamsungInternet"] = "SamsungInternet";
165
+ })(Browsers || (Browsers = {}));
166
+ var Platform = {
167
+ device: Devices.Unknown,
168
+ os: OS.Unknown,
169
+ osVersion: '',
170
+ engine: Engines.Unknown,
171
+ engineVersion: '',
172
+ browser: Browsers.Unknown,
173
+ browserVersion: '',
174
+ renderer: getRenderer(),
175
+ userAgent: navigator.userAgent,
176
+ isWebview: false,
177
+ isMobile: false,
178
+ isDesktop: false,
179
+ isStandalone: false,
180
+ isNodeJS: getIsNode(),
181
+ };
182
+ var OS_RESOLVER_MAP = [
183
+ [/windows nt (6\.[23]); arm/i, OS.Windows, resolveWindowsVersion],
184
+ [/windows (?:phone|mobile|iot)(?: os)?[\/ ]?([\d.]*( se)?)/i, OS.Windows, resolveWindowsVersion],
185
+ [/windows[\/ ](1[01]|2000|3\.1|7|8(\.1)?|9[58]|me|server 20\d\d( r2)?|vista|xp)/i, OS.Windows, resolveWindowsVersion],
186
+ [/windows nt ?([\d.)]*)(?!.+xbox)/i, OS.Windows, resolveWindowsVersion],
187
+ [/\bwin(?=3| ?9|n)(?:nt| 9x )?([\d.;]*)/i, OS.Windows, resolveWindowsVersion],
188
+ [/windows ce\/?([\d.]*)/i, OS.Windows, resolveWindowsVersion],
189
+ [/[adehimnop]{4,7}\b(?:.*os (\w+) like mac|; opera)/i, OS.iOS, resolveUnderscoreVersion],
190
+ [/(?:ios;fbsv|ios(?=.+ip(?:ad|hone))|ip(?:ad|hone)(?: |.+i(?:pad)?)os)[\/ ]([\w.]+)/i, OS.iOS, resolveUnderscoreVersion],
191
+ [/cfnetwork\/.+darwin/i, OS.iOS, resolveUnderscoreVersion],
192
+ [/mac os x ?([\w. ]*)/i, OS.MacOS, resolveUnderscoreVersion],
193
+ [/(?:macintosh|mac_powerpc\b)(?!.+(haiku|morphos))/i, OS.MacOS, resolveUnderscoreVersion],
194
+ [/droid ([\w.]+)\b.+(android[- ]x86)/i, OS.Android],
195
+ [/android\w*[-\/.; ]?([\d.]*)/i, OS.Android],
196
+ ];
197
+ var ENGINE_RESOLVER_MAP = [
198
+ [/windows.+ edge\/([\w.]+)/i, Engines.EdgeHTML],
199
+ [/arkweb\/([\w.]+)/i, Engines.ArkWeb],
200
+ [/webkit\/537\.36.+chrome\/(?!27)([\w.]+)/i, Engines.Blink],
201
+ [/presto\/([\w.]+)/i, Engines.Presto],
202
+ [/webkit\/([\w.]+)/i, Engines.WebKit],
203
+ [/trident\/([\w.]+)/i, Engines.Trident],
204
+ [/netfront\/([\w.]+)/i, Engines.NetFront],
205
+ [/khtml[\/ ]\(?([\w.]+)/i, Engines.KHTML],
206
+ [/tasman[\/ ]\(?([\w.]+)/i, Engines.Tasman],
207
+ [/rv:([\w.]{1,9})\b.+gecko/i, Engines.Gecko]
208
+ ];
209
+ var BROWSER_RESOLVER_MAP = [
210
+ [/\b(?:crmo|crios)\/([\w.]+)/i, Browsers.Chrome],
211
+ [/webview.+edge\/([\w.]+)/i, Browsers.Edge],
212
+ [/edg(?:e|ios|a)?\/([\w.]+)/i, Browsers.Edge],
213
+ [/opera mini\/([-\w.]+)/i, Browsers.Opera],
214
+ [/opera [mobileta]{3,6}\b.+version\/([-\w.]+)/i, Browsers.Opera],
215
+ [/opera(?:.+version\/|[\/ ]+)([\w.]+)/i, Browsers.Opera],
216
+ [/opios[\/ ]+([\w.]+)/i, Browsers.Opera],
217
+ [/\bop(?:rg)?x\/([\w.]+)/i, Browsers.Opera],
218
+ [/\bopr\/([\w.]+)/i, Browsers.Opera],
219
+ [/iemobile(?:browser|boat|jet)[\/ ]?([\d.]*)/i, Browsers.IE],
220
+ [/(?:ms|\()ie ([\w.]+)/i, Browsers.IE],
221
+ [/trident.+rv[: ]([\w.]{1,9})\b.+like gecko/i, Browsers.IE],
222
+ [/\bfocus\/([\w.]+)/i, Browsers.Firefox],
223
+ [/\bopt\/([\w.]+)/i, Browsers.Opera],
224
+ [/coast\/([\w.]+)/i, Browsers.Opera],
225
+ [/fxios\/([\w.-]+)/i, Browsers.Firefox],
226
+ [/samsungbrowser\/([\w.]+)/i, Browsers.SamsungInternet],
227
+ [/headlesschrome(?:\/([\w.]+)| )/i, Browsers.Chrome],
228
+ [/wv\).+chrome\/([\w.]+).+edgw\//i, Browsers.Edge],
229
+ [/ wv\).+(chrome)\/([\w.]+)/i, Browsers.Chrome],
230
+ [/chrome\/([\w.]+) mobile/i, Browsers.Chrome],
231
+ [/chrome\/v?([\w.]+)/i, Browsers.Chrome],
232
+ [/version\/([\w.,]+) .*mobile(?:\/\w+ | ?)safari/i, Browsers.Safari],
233
+ [/iphone .*mobile(?:\/\w+ | ?)safari/i, Browsers.Safari],
234
+ [/version\/([\w.,]+) .*safari/i, Browsers.Safari],
235
+ [/webkit.+?(?:mobile ?safari|safari)(\/[\w.]+)/i, Browsers.Safari, '1'],
236
+ [/(?:mobile|tablet);.*firefox\/([\w.-]+)/i, Browsers.Firefox],
237
+ [/mobile vr; rv:([\w.]+)\).+firefox/i, Browsers.Firefox],
238
+ [/firefox\/([\w.]+)/i, Browsers.Firefox],
239
+ ];
240
+ function resolveWindowsVersion(string) {
241
+ if (string === undefined)
242
+ return '';
243
+ var mapped = {
244
+ '4.90': 'ME',
245
+ 'NT3.51': 'NT 3.11',
246
+ 'NT4.0': 'NT 4.0',
247
+ 'NT 5.0': '2000',
248
+ 'NT 5.1': 'XP',
249
+ 'NT 5.2': 'XP',
250
+ 'NT 6.0': 'Vista',
251
+ 'NT 6.1': '7',
252
+ 'NT 6.2': '8',
253
+ 'NT 6.3': '8.1',
254
+ 'NT 6.4': '10',
255
+ 'NT 10.0': '10',
256
+ 'ARM': 'RT'
257
+ }[string];
258
+ if (mapped !== undefined)
259
+ return mapped;
260
+ return string;
261
+ }
262
+ function resolveUnderscoreVersion(string) {
263
+ if (string === undefined)
264
+ return '';
265
+ return string.replace(/_/g, '.');
266
+ }
267
+ function resolveVersion(string, resolver) {
268
+ if (typeof resolver === 'function')
269
+ return resolver(string);
270
+ if (typeof resolver === 'string')
271
+ return resolver;
272
+ if (string === undefined)
273
+ return '';
274
+ return string;
275
+ }
276
+ function normalizeBrand(entry) {
277
+ if (entry === null || entry === undefined)
278
+ return { brand: '', version: '' };
279
+ if (typeof entry === 'string')
280
+ return { brand: entry, version: '' };
281
+ return { brand: entry.brand, version: entry.version };
282
+ }
283
+ function getRenderer() {
284
+ if (typeof globalThis.document === 'undefined')
285
+ return '';
286
+ var canvas = globalThis.document.createElement('canvas');
287
+ if (typeof canvas.getContext !== 'function')
288
+ return '';
289
+ var context = canvas.getContext('webgl2') || canvas.getContext('experimental-webgl') || canvas.getContext('webgl');
290
+ if (context === null)
291
+ return '';
292
+ if (context instanceof WebGLRenderingContext || 'getParameter' in context && typeof context.getParameter === 'function') {
293
+ var extension = context.getExtension('WEBGL_debug_renderer_info');
294
+ if (extension === null)
295
+ return context.getParameter(context.RENDERER);
296
+ else
297
+ return context.getParameter(extension.UNMASKED_RENDERER_WEBGL);
298
+ }
299
+ else {
300
+ return '';
301
+ }
302
+ }
303
+ function getIsStandalone(os) {
304
+ if (!('matchMedia' in globalThis))
305
+ return false;
306
+ if (os === OS.iOS)
307
+ return 'standalone' in navigator && !!navigator.standalone;
308
+ return globalThis.matchMedia('(display-mode: standalone)').matches;
309
+ }
310
+ function getIsWebview() {
311
+ return /; ?wv|applewebkit(?!.*safari)/i.test(Platform.userAgent);
312
+ }
313
+ function getIsNode() {
314
+ return typeof globalThis.process !== 'undefined' && typeof globalThis.process.versions !== 'undefined' && globalThis.process.versions.node !== undefined;
315
+ }
316
+ function getNodeOSVersion(string) {
317
+ var parts = string.split('.');
318
+ return {
319
+ major: parseInt(parts[0] || '0'),
320
+ minor: parseInt(parts[1] || '0'),
321
+ build: parseInt(parts[2] || '0')
322
+ };
323
+ }
324
+ for (var i = 0; i < OS_RESOLVER_MAP.length; i++) {
325
+ var map = OS_RESOLVER_MAP[i];
326
+ var regexp = map[0];
327
+ var os = map[1];
328
+ var resolver = map[2];
329
+ var matched = Platform.userAgent.match(regexp);
330
+ if (matched !== null) {
331
+ Platform.os = os;
332
+ Platform.osVersion = resolveVersion(matched[1], resolver);
333
+ if (os === OS.iOS || os === OS.Android)
334
+ Platform.device = Devices.Mobile;
335
+ else if (os === OS.Windows || os === OS.MacOS)
336
+ Platform.device = Devices.Desktop;
337
+ break;
338
+ }
339
+ }
340
+ for (var i = 0; i < ENGINE_RESOLVER_MAP.length; i++) {
341
+ var map = ENGINE_RESOLVER_MAP[i];
342
+ var regexp = map[0];
343
+ var engine = map[1];
344
+ var resolver = map[2];
345
+ var matched = Platform.userAgent.match(regexp);
346
+ if (matched !== null) {
347
+ Platform.engine = engine;
348
+ Platform.engineVersion = resolveVersion(matched[1], resolver);
349
+ break;
350
+ }
351
+ }
352
+ for (var i = 0; i < BROWSER_RESOLVER_MAP.length; i++) {
353
+ var map = BROWSER_RESOLVER_MAP[i];
354
+ var regexp = map[0];
355
+ var browser = map[1];
356
+ var resolver = map[2];
357
+ var matched = Platform.userAgent.match(regexp);
358
+ if (matched !== null) {
359
+ Platform.browser = browser;
360
+ Platform.browserVersion = resolveVersion(matched[1], resolver);
361
+ break;
362
+ }
363
+ }
364
+ if (Platform.isNodeJS) {
365
+ dynamicImport('os')
366
+ .then(function (os) {
367
+ if (os === null)
368
+ return;
369
+ var platform = os.platform();
370
+ var release = os.release();
371
+ var version = getNodeOSVersion(release);
372
+ switch (platform) {
373
+ case 'win32':
374
+ Platform.os = OS.Windows;
375
+ if (version.major === 10 && version.minor === 0 && version.build >= 22000)
376
+ Platform.osVersion = '11';
377
+ else if (version.major === 10 && version.minor === 0 && version.build < 22000)
378
+ Platform.osVersion = '10';
379
+ else if (version.major === 6 && version.minor === 3)
380
+ Platform.osVersion = '8.1';
381
+ else if (version.major === 6 && version.minor === 2)
382
+ Platform.osVersion = '8';
383
+ else if (version.major === 6 && version.minor === 1)
384
+ Platform.osVersion = '7';
385
+ else if (version.major === 6 && version.minor === 0)
386
+ Platform.osVersion = 'Vista';
387
+ else if (version.major === 5 && version.minor === 1)
388
+ Platform.osVersion = 'XP';
389
+ else if (version.major === 5 && version.minor === 2)
390
+ Platform.osVersion = 'XP';
391
+ else if (version.major === 5 && version.minor === 0)
392
+ Platform.osVersion = '2000';
393
+ else if (version.major === 4 && version.minor === 90)
394
+ Platform.osVersion = 'ME';
395
+ else if (version.major === 4 && version.minor === 0)
396
+ Platform.osVersion = 'NT 4.0';
397
+ else if (version.major === 3 && version.minor === 51)
398
+ Platform.osVersion = 'NT 3.11';
399
+ else
400
+ Platform.osVersion = release;
401
+ break;
402
+ case 'darwin':
403
+ Platform.os = OS.MacOS;
404
+ if (version.major >= 24)
405
+ Platform.osVersion = '' + (version.major - 9) + '.' + version.minor + '.' + version.build;
406
+ else if (version.major === 23)
407
+ Platform.osVersion = '14.' + version.minor + '.' + version.build;
408
+ else if (version.major === 22)
409
+ Platform.osVersion = '13.' + version.minor + '.' + version.build;
410
+ else if (version.major === 21)
411
+ Platform.osVersion = '12.' + version.minor + '.' + version.build;
412
+ else if (version.major === 20)
413
+ Platform.osVersion = '11.' + version.minor + '.' + version.build;
414
+ else if (version.major === 19)
415
+ Platform.osVersion = '10.15.' + version.minor;
416
+ else if (version.major === 18)
417
+ Platform.osVersion = '10.14.' + version.minor;
418
+ else if (version.major === 17)
419
+ Platform.osVersion = '10.13.' + version.minor;
420
+ else if (version.major === 16)
421
+ Platform.osVersion = '10.12.' + version.minor;
422
+ else if (version.major === 15)
423
+ Platform.osVersion = '10.11.' + version.minor;
424
+ else if (version.major === 14)
425
+ Platform.osVersion = '10.10.' + version.minor;
426
+ else if (version.major === 13)
427
+ Platform.osVersion = '10.9.' + version.minor;
428
+ else if (version.major >= 5 && version.major <= 12)
429
+ Platform.osVersion = '10.' + (version.major - 4) + '.' + version.minor;
430
+ else
431
+ Platform.osVersion = release;
432
+ break;
433
+ case 'android':
434
+ Platform.os = OS.Android;
435
+ Platform.osVersion = release;
436
+ break;
437
+ case 'linux':
438
+ if (/android/i.test(release)) {
439
+ Platform.os = OS.Android;
440
+ Platform.osVersion = release;
441
+ }
442
+ break;
443
+ }
444
+ });
445
+ }
446
+ if (navigator.userAgentData !== undefined && navigator.userAgentData.getHighEntropyValues !== undefined) {
447
+ navigator
448
+ .userAgentData
449
+ .getHighEntropyValues(['brands', 'fullVersionList', 'mobile', 'model', 'platform', 'platformVersion', 'architecture', 'formFactors', 'bitness', 'uaFullVersion', 'wow64'])
450
+ .then(function (result) {
451
+ var brands = result.fullVersionList || result.brands || [];
452
+ var platformVersion = result.platformVersion;
453
+ for (var i = 0; i < brands.length; i++) {
454
+ var brand = normalizeBrand(brands[i]);
455
+ var brandName = brand.brand;
456
+ var brandVersion = brand.version;
457
+ if (/not.a.brand/i.test(brandName))
458
+ continue;
459
+ if (brandName === "Chromium")
460
+ Platform.engineVersion = brandVersion;
461
+ }
462
+ if (typeof platformVersion === 'string') {
463
+ if (Platform.os === OS.Windows && parseInt(platformVersion.replace(/[^\d.]/g, '').split('.')[0], 10) >= 13)
464
+ Platform.osVersion = '11';
465
+ else
466
+ Platform.osVersion = platformVersion;
467
+ }
119
468
  });
120
469
  }
470
+ Platform.isMobile = Platform.device === Devices.Mobile;
471
+ Platform.isDesktop = Platform.device === Devices.Desktop;
472
+ Platform.isWebview = getIsWebview();
473
+ Platform.isStandalone = getIsStandalone(Platform.os);
121
474
 
122
475
  (function () {
123
476
  if (typeof globalThis === 'object')
@@ -160,10 +513,18 @@ var Native = new Proxy({
160
513
  throw new PluginNotExtendedError(prop.toString() + ' is not extended yet. Call Native.extends(plugin) first.');
161
514
  }
162
515
  });
163
- dynamicImport('electron')
164
- .then(function (electron) {
165
- if (electron !== null)
166
- console.log(electron.shell);
167
- });
516
+ var NativePlatformPlugin = {
517
+ installed: false,
518
+ name: 'Platform',
519
+ module: Platform,
520
+ Constants: {
521
+ OS: OS,
522
+ Devices: Devices,
523
+ Engines: Engines,
524
+ Browsers: Browsers,
525
+ },
526
+ Errors: {}
527
+ };
528
+ Native.extends(NativePlatformPlugin);
168
529
 
169
530
  export { Native as default };