native-fn 1.0.41 → 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 (78) hide show
  1. package/dist/native.cjs +380 -1
  2. package/dist/native.min.cjs +1 -1
  3. package/dist/native.min.mjs +1 -1
  4. package/dist/native.mjs +380 -1
  5. package/dist/native.umd.js +380 -1
  6. package/dist/native.umd.min.js +1 -1
  7. package/dist/plugin/app/index.cjs +262 -98
  8. package/dist/plugin/app/index.d.ts +18 -0
  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 +262 -98
  12. package/dist/plugin/app/index.umd.js +262 -98
  13. package/dist/plugin/app/index.umd.min.js +1 -1
  14. package/dist/plugin/app/src/constants/platform.d.ts +21 -12
  15. package/dist/plugin/app/src/types/platform.d.ts +17 -0
  16. package/dist/plugin/app/src/utils/create-custom-error.d.ts +5 -0
  17. package/dist/plugin/app/src/utils/create-hidden-element.d.ts +1 -1
  18. package/dist/plugin/app/src/utils/dynamic-import.d.ts +1 -0
  19. package/dist/plugin/camera/index.cjs +248 -86
  20. package/dist/plugin/camera/index.min.cjs +1 -1
  21. package/dist/plugin/camera/index.min.mjs +1 -1
  22. package/dist/plugin/camera/index.mjs +248 -86
  23. package/dist/plugin/camera/index.umd.js +248 -86
  24. package/dist/plugin/camera/index.umd.min.js +1 -1
  25. package/dist/plugin/camera/src/constants/platform.d.ts +21 -12
  26. package/dist/plugin/camera/src/types/platform.d.ts +17 -0
  27. package/dist/plugin/camera/src/utils/create-custom-error.d.ts +5 -0
  28. package/dist/plugin/camera/src/utils/create-hidden-element.d.ts +1 -1
  29. package/dist/plugin/camera/src/utils/dynamic-import.d.ts +1 -0
  30. package/dist/plugin/clipboard/index.cjs +7 -4
  31. package/dist/plugin/clipboard/index.min.cjs +1 -1
  32. package/dist/plugin/clipboard/index.min.mjs +1 -1
  33. package/dist/plugin/clipboard/index.mjs +7 -4
  34. package/dist/plugin/clipboard/index.umd.js +7 -4
  35. package/dist/plugin/clipboard/index.umd.min.js +1 -1
  36. package/dist/plugin/clipboard/src/constants/platform.d.ts +21 -12
  37. package/dist/plugin/clipboard/src/types/platform.d.ts +17 -0
  38. package/dist/plugin/clipboard/src/utils/create-custom-error.d.ts +5 -0
  39. package/dist/plugin/clipboard/src/utils/create-hidden-element.d.ts +1 -1
  40. package/dist/plugin/clipboard/src/utils/dynamic-import.d.ts +1 -0
  41. package/dist/plugin/fullscreen/index.cjs +241 -82
  42. package/dist/plugin/fullscreen/index.min.cjs +1 -1
  43. package/dist/plugin/fullscreen/index.min.mjs +1 -1
  44. package/dist/plugin/fullscreen/index.mjs +241 -82
  45. package/dist/plugin/fullscreen/index.umd.js +241 -82
  46. package/dist/plugin/fullscreen/index.umd.min.js +1 -1
  47. package/dist/plugin/fullscreen/src/constants/platform.d.ts +21 -12
  48. package/dist/plugin/fullscreen/src/types/platform.d.ts +17 -0
  49. package/dist/plugin/fullscreen/src/utils/create-custom-error.d.ts +5 -0
  50. package/dist/plugin/fullscreen/src/utils/create-hidden-element.d.ts +1 -1
  51. package/dist/plugin/fullscreen/src/utils/dynamic-import.d.ts +1 -0
  52. package/dist/plugin/platform/index.cjs +7 -7
  53. package/dist/plugin/platform/index.d.ts +18 -0
  54. package/dist/plugin/platform/index.min.cjs +1 -1
  55. package/dist/plugin/platform/index.min.mjs +1 -1
  56. package/dist/plugin/platform/index.mjs +7 -7
  57. package/dist/plugin/platform/index.umd.js +7 -7
  58. package/dist/plugin/platform/index.umd.min.js +1 -1
  59. package/dist/plugin/platform/src/constants/platform.d.ts +19 -0
  60. package/dist/plugin/platform/src/utils/create-custom-error.d.ts +5 -0
  61. package/dist/plugin/platform/src/utils/dynamic-import.d.ts +1 -0
  62. package/dist/plugin/theme/index.cjs +252 -91
  63. package/dist/plugin/theme/index.min.cjs +1 -1
  64. package/dist/plugin/theme/index.min.mjs +1 -1
  65. package/dist/plugin/theme/index.mjs +252 -91
  66. package/dist/plugin/theme/index.umd.js +252 -91
  67. package/dist/plugin/theme/index.umd.min.js +1 -1
  68. package/dist/plugin/theme/src/constants/platform.d.ts +21 -12
  69. package/dist/plugin/theme/src/types/platform.d.ts +17 -0
  70. package/dist/plugin/theme/src/utils/create-custom-error.d.ts +5 -0
  71. package/dist/plugin/theme/src/utils/create-hidden-element.d.ts +1 -1
  72. package/dist/plugin/theme/src/utils/dynamic-import.d.ts +1 -0
  73. package/dist/src/constants/platform.d.ts +21 -12
  74. package/dist/src/types/platform.d.ts +17 -0
  75. package/dist/src/utils/create-custom-error.d.ts +5 -0
  76. package/dist/src/utils/create-hidden-element.d.ts +1 -1
  77. package/dist/src/utils/dynamic-import.d.ts +1 -0
  78. package/package.json +1 -8
@@ -1,4 +1,20 @@
1
- var USER_AGENT = navigator.userAgent;
1
+ function dynamicImport(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 import(moduleName)
11
+ .then(function (module) {
12
+ return (module.default || module);
13
+ })
14
+ .catch(function () {
15
+ return Promise.resolve(null);
16
+ });
17
+ }
2
18
 
3
19
  var OS;
4
20
  (function (OS) {
@@ -39,47 +55,22 @@ var Browsers;
39
55
  Browsers["IE"] = "IE";
40
56
  Browsers["SamsungInternet"] = "SamsungInternet";
41
57
  })(Browsers || (Browsers = {}));
42
- var DEVICE_NAME = Devices.Unknown;
43
- var OS_NAME = OS.Unknown;
44
- var OS_VERSION = '';
45
- Engines.Unknown;
46
- Browsers.Unknown;
47
- function resolveWindowsVersion(string) {
48
- if (string === undefined)
49
- return '';
50
- var mapped = {
51
- '4.90': 'ME',
52
- 'NT3.51': 'NT 3.11',
53
- 'NT4.0': 'NT 4.0',
54
- 'NT 5.0': '2000',
55
- 'NT 5.1': 'XP',
56
- 'NT 5.2': 'XP',
57
- 'NT 6.0': 'Vista',
58
- 'NT 6.1': '7',
59
- 'NT 6.2': '8',
60
- 'NT 6.3': '8.1',
61
- 'NT 6.4': '10',
62
- 'NT 10.0': '10',
63
- 'ARM': 'RT'
64
- }[string];
65
- if (mapped !== undefined)
66
- return mapped;
67
- return string;
68
- }
69
- function resolveUnderscoreVersion(string) {
70
- if (string === undefined)
71
- return '';
72
- return string.replace(/_/g, '.');
73
- }
74
- function resolveVersion(string, resolver) {
75
- if (typeof resolver === 'function')
76
- return resolver(string);
77
- if (typeof resolver === 'string')
78
- return resolver;
79
- if (string === undefined)
80
- return '';
81
- return string;
82
- }
58
+ var Platform = {
59
+ device: Devices.Unknown,
60
+ os: OS.Unknown,
61
+ osVersion: '',
62
+ engine: Engines.Unknown,
63
+ engineVersion: '',
64
+ browser: Browsers.Unknown,
65
+ browserVersion: '',
66
+ renderer: getRenderer(),
67
+ userAgent: navigator.userAgent,
68
+ isWebview: false,
69
+ isMobile: false,
70
+ isDesktop: false,
71
+ isStandalone: false,
72
+ isNodeJS: getIsNode(),
73
+ };
83
74
  var OS_RESOLVER_MAP = [
84
75
  [/windows nt (6\.[23]); arm/i, OS.Windows, resolveWindowsVersion],
85
76
  [/windows (?:phone|mobile|iot)(?: os)?[\/ ]?([\d.]*( se)?)/i, OS.Windows, resolveWindowsVersion],
@@ -138,73 +129,240 @@ var BROWSER_RESOLVER_MAP = [
138
129
  [/mobile vr; rv:([\w.]+)\).+firefox/i, Browsers.Firefox],
139
130
  [/firefox\/([\w.]+)/i, Browsers.Firefox],
140
131
  ];
132
+ function resolveWindowsVersion(string) {
133
+ if (string === undefined)
134
+ return '';
135
+ var mapped = {
136
+ '4.90': 'ME',
137
+ 'NT3.51': 'NT 3.11',
138
+ 'NT4.0': 'NT 4.0',
139
+ 'NT 5.0': '2000',
140
+ 'NT 5.1': 'XP',
141
+ 'NT 5.2': 'XP',
142
+ 'NT 6.0': 'Vista',
143
+ 'NT 6.1': '7',
144
+ 'NT 6.2': '8',
145
+ 'NT 6.3': '8.1',
146
+ 'NT 6.4': '10',
147
+ 'NT 10.0': '10',
148
+ 'ARM': 'RT'
149
+ }[string];
150
+ if (mapped !== undefined)
151
+ return mapped;
152
+ return string;
153
+ }
154
+ function resolveUnderscoreVersion(string) {
155
+ if (string === undefined)
156
+ return '';
157
+ return string.replace(/_/g, '.');
158
+ }
159
+ function resolveVersion(string, resolver) {
160
+ if (typeof resolver === 'function')
161
+ return resolver(string);
162
+ if (typeof resolver === 'string')
163
+ return resolver;
164
+ if (string === undefined)
165
+ return '';
166
+ return string;
167
+ }
168
+ function normalizeBrand(entry) {
169
+ if (entry === null || entry === undefined)
170
+ return { brand: '', version: '' };
171
+ if (typeof entry === 'string')
172
+ return { brand: entry, version: '' };
173
+ return { brand: entry.brand, version: entry.version };
174
+ }
175
+ function getRenderer() {
176
+ if (typeof globalThis.document === 'undefined')
177
+ return '';
178
+ var canvas = globalThis.document.createElement('canvas');
179
+ if (typeof canvas.getContext !== 'function')
180
+ return '';
181
+ var context = canvas.getContext('webgl2') || canvas.getContext('experimental-webgl') || canvas.getContext('webgl');
182
+ if (context === null)
183
+ return '';
184
+ if (context instanceof WebGLRenderingContext || 'getParameter' in context && typeof context.getParameter === 'function') {
185
+ var extension = context.getExtension('WEBGL_debug_renderer_info');
186
+ if (extension === null)
187
+ return context.getParameter(context.RENDERER);
188
+ else
189
+ return context.getParameter(extension.UNMASKED_RENDERER_WEBGL);
190
+ }
191
+ else {
192
+ return '';
193
+ }
194
+ }
195
+ function getIsStandalone(os) {
196
+ if (!('matchMedia' in globalThis))
197
+ return false;
198
+ if (os === OS.iOS)
199
+ return 'standalone' in navigator && !!navigator.standalone;
200
+ return globalThis.matchMedia('(display-mode: standalone)').matches;
201
+ }
202
+ function getIsWebview() {
203
+ return /; ?wv|applewebkit(?!.*safari)/i.test(Platform.userAgent);
204
+ }
205
+ function getIsNode() {
206
+ return typeof globalThis.process !== 'undefined' && typeof globalThis.process.versions !== 'undefined' && globalThis.process.versions.node !== undefined;
207
+ }
208
+ function getNodeOSVersion(string) {
209
+ var parts = string.split('.');
210
+ return {
211
+ major: parseInt(parts[0] || '0'),
212
+ minor: parseInt(parts[1] || '0'),
213
+ build: parseInt(parts[2] || '0')
214
+ };
215
+ }
141
216
  for (var i = 0; i < OS_RESOLVER_MAP.length; i++) {
142
217
  var map = OS_RESOLVER_MAP[i];
143
218
  var regexp = map[0];
144
219
  var os = map[1];
145
220
  var resolver = map[2];
146
- var matched = USER_AGENT.match(regexp);
221
+ var matched = Platform.userAgent.match(regexp);
147
222
  if (matched !== null) {
148
- OS_NAME = os;
149
- OS_VERSION = resolveVersion(matched[1], resolver);
223
+ Platform.os = os;
224
+ Platform.osVersion = resolveVersion(matched[1], resolver);
150
225
  if (os === OS.iOS || os === OS.Android)
151
- DEVICE_NAME = Devices.Mobile;
226
+ Platform.device = Devices.Mobile;
152
227
  else if (os === OS.Windows || os === OS.MacOS)
153
- DEVICE_NAME = Devices.Desktop;
228
+ Platform.device = Devices.Desktop;
154
229
  break;
155
230
  }
156
231
  }
157
232
  for (var i = 0; i < ENGINE_RESOLVER_MAP.length; i++) {
158
233
  var map = ENGINE_RESOLVER_MAP[i];
159
234
  var regexp = map[0];
160
- map[1];
235
+ var engine = map[1];
161
236
  var resolver = map[2];
162
- var matched = USER_AGENT.match(regexp);
237
+ var matched = Platform.userAgent.match(regexp);
163
238
  if (matched !== null) {
164
- resolveVersion(matched[1], resolver);
239
+ Platform.engine = engine;
240
+ Platform.engineVersion = resolveVersion(matched[1], resolver);
165
241
  break;
166
242
  }
167
243
  }
168
244
  for (var i = 0; i < BROWSER_RESOLVER_MAP.length; i++) {
169
245
  var map = BROWSER_RESOLVER_MAP[i];
170
246
  var regexp = map[0];
171
- map[1];
247
+ var browser = map[1];
172
248
  var resolver = map[2];
173
- var matched = USER_AGENT.match(regexp);
249
+ var matched = Platform.userAgent.match(regexp);
174
250
  if (matched !== null) {
175
- resolveVersion(matched[1], resolver);
251
+ Platform.browser = browser;
252
+ Platform.browserVersion = resolveVersion(matched[1], resolver);
176
253
  break;
177
254
  }
178
255
  }
179
- ((function () {
180
- if (typeof globalThis.document === 'undefined')
181
- return '';
182
- var canvas = globalThis.document.createElement('canvas');
183
- if (typeof canvas.getContext !== 'function')
184
- return '';
185
- var context = canvas.getContext('webgl2') || canvas.getContext('experimental-webgl') || canvas.getContext('webgl');
186
- if (context === null)
187
- return '';
188
- if (context instanceof WebGLRenderingContext || 'getParameter' in context && typeof context.getParameter === 'function') {
189
- var extension = context.getExtension('WEBGL_debug_renderer_info');
190
- if (extension === null)
191
- return context.getParameter(context.RENDERER);
192
- else
193
- return context.getParameter(extension.UNMASKED_RENDERER_WEBGL);
194
- }
195
- else {
196
- return '';
197
- }
198
- }))();
199
- DEVICE_NAME === Devices.Mobile;
200
- DEVICE_NAME === Devices.Desktop;
201
- ((function () {
202
- if (!('matchMedia' in globalThis))
203
- return false;
204
- if (OS_NAME === OS.iOS)
205
- return 'standalone' in navigator && !!navigator.standalone;
206
- return globalThis.matchMedia('(display-mode: standalone)').matches;
207
- }))();
256
+ if (Platform.isNodeJS) {
257
+ dynamicImport('os')
258
+ .then(function (os) {
259
+ if (os === null)
260
+ return;
261
+ var platform = os.platform();
262
+ var release = os.release();
263
+ var version = getNodeOSVersion(release);
264
+ switch (platform) {
265
+ case 'win32':
266
+ Platform.os = OS.Windows;
267
+ if (version.major === 10 && version.minor === 0 && version.build >= 22000)
268
+ Platform.osVersion = '11';
269
+ else if (version.major === 10 && version.minor === 0 && version.build < 22000)
270
+ Platform.osVersion = '10';
271
+ else if (version.major === 6 && version.minor === 3)
272
+ Platform.osVersion = '8.1';
273
+ else if (version.major === 6 && version.minor === 2)
274
+ Platform.osVersion = '8';
275
+ else if (version.major === 6 && version.minor === 1)
276
+ Platform.osVersion = '7';
277
+ else if (version.major === 6 && version.minor === 0)
278
+ Platform.osVersion = 'Vista';
279
+ else if (version.major === 5 && version.minor === 1)
280
+ Platform.osVersion = 'XP';
281
+ else if (version.major === 5 && version.minor === 2)
282
+ Platform.osVersion = 'XP';
283
+ else if (version.major === 5 && version.minor === 0)
284
+ Platform.osVersion = '2000';
285
+ else if (version.major === 4 && version.minor === 90)
286
+ Platform.osVersion = 'ME';
287
+ else if (version.major === 4 && version.minor === 0)
288
+ Platform.osVersion = 'NT 4.0';
289
+ else if (version.major === 3 && version.minor === 51)
290
+ Platform.osVersion = 'NT 3.11';
291
+ else
292
+ Platform.osVersion = release;
293
+ break;
294
+ case 'darwin':
295
+ Platform.os = OS.MacOS;
296
+ if (version.major >= 24)
297
+ Platform.osVersion = '' + (version.major - 9);
298
+ else if (version.major === 23)
299
+ Platform.osVersion = '14';
300
+ else if (version.major === 22)
301
+ Platform.osVersion = '13';
302
+ else if (version.major === 21)
303
+ Platform.osVersion = '12';
304
+ else if (version.major === 20)
305
+ Platform.osVersion = '11';
306
+ else if (version.major === 19)
307
+ Platform.osVersion = '10.15';
308
+ else if (version.major === 18)
309
+ Platform.osVersion = '10.14';
310
+ else if (version.major === 17)
311
+ Platform.osVersion = '10.13';
312
+ else if (version.major === 16)
313
+ Platform.osVersion = '10.12';
314
+ else if (version.major === 15)
315
+ Platform.osVersion = '10.11';
316
+ else if (version.major === 14)
317
+ Platform.osVersion = '10.10';
318
+ else if (version.major === 13)
319
+ Platform.osVersion = '10.9';
320
+ else if (version.major >= 5 && version.major <= 12)
321
+ Platform.osVersion = '10.' + (version.major - 4);
322
+ else
323
+ Platform.osVersion = release;
324
+ break;
325
+ case 'android':
326
+ Platform.os = OS.Android;
327
+ Platform.osVersion = release;
328
+ break;
329
+ case 'linux':
330
+ if (/android/i.test(release)) {
331
+ Platform.os = OS.Android;
332
+ Platform.osVersion = release;
333
+ }
334
+ break;
335
+ }
336
+ });
337
+ }
338
+ if (navigator.userAgentData !== undefined && navigator.userAgentData.getHighEntropyValues !== undefined) {
339
+ navigator
340
+ .userAgentData
341
+ .getHighEntropyValues(['brands', 'fullVersionList', 'mobile', 'model', 'platform', 'platformVersion', 'architecture', 'formFactors', 'bitness', 'uaFullVersion', 'wow64'])
342
+ .then(function (result) {
343
+ var brands = result.fullVersionList || result.brands || [];
344
+ var platformVersion = result.platformVersion;
345
+ for (var i = 0; i < brands.length; i++) {
346
+ var brand = normalizeBrand(brands[i]);
347
+ var brandName = brand.brand;
348
+ var brandVersion = brand.version;
349
+ if (/not.a.brand/i.test(brandName))
350
+ continue;
351
+ if (brandName === "Chromium")
352
+ Platform.engineVersion = brandVersion;
353
+ }
354
+ if (typeof platformVersion === 'string') {
355
+ if (Platform.os === OS.Windows && parseInt(platformVersion.replace(/[^\d.]/g, '').split('.')[0], 10) >= 13)
356
+ Platform.osVersion = '11';
357
+ else
358
+ Platform.osVersion = platformVersion;
359
+ }
360
+ });
361
+ }
362
+ Platform.isMobile = Platform.device === Devices.Mobile;
363
+ Platform.isDesktop = Platform.device === Devices.Desktop;
364
+ Platform.isWebview = getIsWebview();
365
+ Platform.isStandalone = getIsStandalone(Platform.os);
208
366
 
209
367
  function getTopmostWindow() {
210
368
  try {
@@ -237,6 +395,8 @@ function dispatchClickEvent(element, view) {
237
395
 
238
396
  function createHiddenElement(tagName, focusable) {
239
397
  if (focusable === void 0) { focusable = true; }
398
+ if (typeof globalThis.document === 'undefined')
399
+ return undefined;
240
400
  var element = globalThis.document.createElement(tagName);
241
401
  if ('width' in element)
242
402
  element.width = '0';
@@ -293,13 +453,15 @@ function tryOpenCamera(type) {
293
453
  var input;
294
454
  try {
295
455
  input = createHiddenElement('input');
456
+ if (input === undefined)
457
+ return;
296
458
  input.type = 'file';
297
459
  input.tabIndex = -1;
298
460
  input.accept = type + '/*';
299
461
  if ('capture' in HTMLInputElement.prototype) {
300
462
  input.capture = 'user';
301
463
  }
302
- else if (OS_NAME === OS.Android) {
464
+ else if (Platform.os === OS.Android) {
303
465
  var capture = '';
304
466
  if (type === 'image')
305
467
  capture = 'camera';
@@ -341,16 +503,16 @@ var Camera = {
341
503
  open: open
342
504
  };
343
505
  function open(type) {
344
- switch (OS_NAME) {
506
+ switch (Platform.os) {
345
507
  case OS.Android:
346
508
  tryOpenCamera(type);
347
509
  break;
348
510
  case OS.iOS:
349
- if (compareVersion(OS_VERSION, '10.3') >= 0) {
511
+ if (compareVersion(Platform.osVersion, '10.3') >= 0) {
350
512
  tryOpenCamera(type);
351
513
  }
352
514
  else {
353
- alert(OS_VERSION);
515
+ alert(Platform.osVersion);
354
516
  }
355
517
  break;
356
518
  case OS.Windows: