native-fn 1.0.42 → 1.0.43

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