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
package/dist/native.mjs CHANGED
@@ -1,4 +1,4 @@
1
- var version = "1.0.41";
1
+ var version = "1.0.43";
2
2
  var packageJSON = {
3
3
  version: version};
4
4
 
@@ -101,6 +101,372 @@ function createCustomError(name, Base) {
101
101
 
102
102
  var PluginNotExtendedError = createCustomError('PluginNotExtendedError');
103
103
 
104
+ function dynamicImport(moduleName) {
105
+ if ('require' in globalThis && typeof globalThis.require === 'function') {
106
+ try {
107
+ return Promise.resolve(globalThis.require(moduleName));
108
+ }
109
+ catch (_) {
110
+ return Promise.resolve(null);
111
+ }
112
+ }
113
+ return import(moduleName)
114
+ .then(function (module) {
115
+ return (module.default || module);
116
+ })
117
+ .catch(function () {
118
+ return Promise.resolve(null);
119
+ });
120
+ }
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
+
104
470
  (function () {
105
471
  if (typeof globalThis === 'object')
106
472
  return;
@@ -142,5 +508,18 @@ var Native = new Proxy({
142
508
  throw new PluginNotExtendedError(prop.toString() + ' is not extended yet. Call Native.extends(plugin) first.');
143
509
  }
144
510
  });
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);
145
524
 
146
525
  export { Native as default };