@vitejs/devtools-kit 0.0.0-alpha.20 → 0.0.0-alpha.21

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.
package/dist/client.mjs CHANGED
@@ -1,14 +1,1134 @@
1
- import { t as createEventEmitter } from "./events-AmnAXhnR.mjs";
1
+ import { t as createEventEmitter } from "./events-CWYZG96x.mjs";
2
+ import { t as nanoid } from "./nanoid-B0pJU5uW.mjs";
2
3
  import { RpcFunctionsCollectorBase } from "birpc-x";
3
4
  import { createRpcClient } from "@vitejs/devtools-rpc";
4
5
  import { createWsRpcPreset } from "@vitejs/devtools-rpc/presets/ws/client";
5
6
 
7
+ //#region rolldown:runtime
8
+ var __commonJSMin = (cb, mod) => () => (mod || cb((mod = { exports: {} }).exports, mod), mod.exports);
9
+
10
+ //#endregion
11
+ //#region ../../node_modules/.pnpm/my-ua-parser@2.0.4/node_modules/my-ua-parser/ua-parser.js
12
+ var require_ua_parser = /* @__PURE__ */ __commonJSMin(((exports, module) => {
13
+ (function(window$1, undefined$1) {
14
+ "use strict";
15
+ var EMPTY = "", UNKNOWN = "?", FUNC_TYPE = "function", UNDEF_TYPE = "undefined", OBJ_TYPE = "object", STR_TYPE = "string", MAJOR = "major", MODEL = "model", NAME = "name", TYPE = "type", VENDOR = "vendor", VERSION = "version", ARCHITECTURE = "architecture", CONSOLE = "console", MOBILE = "mobile", TABLET = "tablet", SMARTTV = "smarttv", WEARABLE = "wearable", EMBEDDED = "embedded", UA_MAX_LENGTH = 500;
16
+ var AMAZON = "Amazon", APPLE = "Apple", ASUS = "ASUS", BLACKBERRY = "BlackBerry", BROWSER = "Browser", CHROME = "Chrome", EDGE = "Edge", FIREFOX = "Firefox", GOOGLE = "Google", HUAWEI = "Huawei", LG = "LG", MICROSOFT = "Microsoft", MOTOROLA = "Motorola", OPERA = "Opera", SAMSUNG = "Samsung", SHARP = "Sharp", SONY = "Sony", XIAOMI = "Xiaomi", ZEBRA = "Zebra", FACEBOOK = "Facebook", CHROMIUM_OS = "Chromium OS", MAC_OS = "Mac OS";
17
+ var extend = function(regexes$1, extensions) {
18
+ var mergedRegexes = {};
19
+ for (var i in regexes$1) if (extensions[i] && extensions[i].length % 2 === 0) mergedRegexes[i] = extensions[i].concat(regexes$1[i]);
20
+ else mergedRegexes[i] = regexes$1[i];
21
+ return mergedRegexes;
22
+ }, enumerize = function(arr) {
23
+ var enums = {};
24
+ for (var i = 0; i < arr.length; i++) enums[arr[i].toUpperCase()] = arr[i];
25
+ return enums;
26
+ }, has = function(str1, str2) {
27
+ return typeof str1 === STR_TYPE ? lowerize(str2).indexOf(lowerize(str1)) !== -1 : false;
28
+ }, lowerize = function(str) {
29
+ return str.toLowerCase();
30
+ }, majorize = function(version) {
31
+ return typeof version === STR_TYPE ? version.replace(/[^\d\.]/g, EMPTY).split(".")[0] : undefined$1;
32
+ }, trim = function(str, len) {
33
+ if (typeof str === STR_TYPE) {
34
+ str = str.replace(/^\s\s*/, EMPTY);
35
+ return typeof len === UNDEF_TYPE ? str : str.substring(0, UA_MAX_LENGTH);
36
+ }
37
+ };
38
+ var rgxMapper = function(ua, arrays) {
39
+ var i = 0, j, k, p, q, matches, match;
40
+ while (i < arrays.length && !matches) {
41
+ var regex = arrays[i], props = arrays[i + 1];
42
+ j = k = 0;
43
+ while (j < regex.length && !matches) {
44
+ if (!regex[j]) break;
45
+ matches = regex[j++].exec(ua);
46
+ if (!!matches) for (p = 0; p < props.length; p++) {
47
+ match = matches[++k];
48
+ q = props[p];
49
+ if (typeof q === OBJ_TYPE && q.length > 0) {
50
+ if (q.length === 2) if (typeof q[1] == FUNC_TYPE) this[q[0]] = q[1].call(this, match);
51
+ else this[q[0]] = q[1];
52
+ else if (q.length === 3) if (typeof q[1] === FUNC_TYPE && !(q[1].exec && q[1].test)) this[q[0]] = match ? q[1].call(this, match, q[2]) : undefined$1;
53
+ else this[q[0]] = match ? match.replace(q[1], q[2]) : undefined$1;
54
+ else if (q.length === 4) this[q[0]] = match ? q[3].call(this, match.replace(q[1], q[2])) : undefined$1;
55
+ } else this[q] = match ? match : undefined$1;
56
+ }
57
+ }
58
+ i += 2;
59
+ }
60
+ }, strMapper = function(str, map) {
61
+ for (var i in map) if (typeof map[i] === OBJ_TYPE && map[i].length > 0) {
62
+ for (var j = 0; j < map[i].length; j++) if (has(map[i][j], str)) return i === UNKNOWN ? undefined$1 : i;
63
+ } else if (has(map[i], str)) return i === UNKNOWN ? undefined$1 : i;
64
+ return str;
65
+ };
66
+ var oldSafariMap = {
67
+ "1.0": "/8",
68
+ "1.2": "/1",
69
+ "1.3": "/3",
70
+ "2.0": "/412",
71
+ "2.0.2": "/416",
72
+ "2.0.3": "/417",
73
+ "2.0.4": "/419",
74
+ "?": "/"
75
+ }, windowsVersionMap = {
76
+ "ME": "4.90",
77
+ "NT 3.11": "NT3.51",
78
+ "NT 4.0": "NT4.0",
79
+ "2000": "NT 5.0",
80
+ "XP": ["NT 5.1", "NT 5.2"],
81
+ "Vista": "NT 6.0",
82
+ "7": "NT 6.1",
83
+ "8": "NT 6.2",
84
+ "8.1": "NT 6.3",
85
+ "10": ["NT 6.4", "NT 10.0"],
86
+ "RT": "ARM"
87
+ };
88
+ var regexes = {
89
+ browser: [
90
+ [/\b(?:crmo|crios)\/([\w\.]+)/i],
91
+ [VERSION, [NAME, "Chrome"]],
92
+ [/edg(?:e|ios|a)?\/([\w\.]+)/i],
93
+ [VERSION, [NAME, "Edge"]],
94
+ [
95
+ /(opera mini)\/([-\w\.]+)/i,
96
+ /(opera [mobiletab]{3,6})\b.+version\/([-\w\.]+)/i,
97
+ /(opera)(?:.+version\/|[\/ ]+)([\w\.]+)/i
98
+ ],
99
+ [NAME, VERSION],
100
+ [/opios[\/ ]+([\w\.]+)/i],
101
+ [VERSION, [NAME, OPERA + " Mini"]],
102
+ [/\bop(?:rg)?x\/([\w\.]+)/i],
103
+ [VERSION, [NAME, OPERA + " GX"]],
104
+ [/\bopr\/([\w\.]+)/i],
105
+ [VERSION, [NAME, OPERA]],
106
+ [/\bb[ai]*d(?:uhd|[ub]*[aekoprswx]{5,6})[\/ ]?([\w\.]+)/i],
107
+ [VERSION, [NAME, "Baidu"]],
108
+ [
109
+ /(kindle)\/([\w\.]+)/i,
110
+ /(lunascape|maxthon|netfront|jasmine|blazer)[\/ ]?([\w\.]*)/i,
111
+ /(avant|iemobile|slim)\s?(?:browser)?[\/ ]?([\w\.]*)/i,
112
+ /(?:ms|\()(ie) ([\w\.]+)/i,
113
+ /(flock|rockmelt|midori|epiphany|silk|skyfire|bolt|iron|vivaldi|iridium|phantomjs|bowser|quark|qupzilla|falkon|rekonq|puffin|brave|whale(?!.+naver)|qqbrowserlite|qq|duckduckgo)\/([-\w\.]+)/i,
114
+ /(heytap|ovi)browser\/([\d\.]+)/i,
115
+ /(weibo)__([\d\.]+)/i
116
+ ],
117
+ [NAME, VERSION],
118
+ [/\bddg\/([\w\.]+)/i],
119
+ [VERSION, [NAME, "DuckDuckGo"]],
120
+ [/(?:\buc? ?browser|(?:juc.+)ucweb)[\/ ]?([\w\.]+)/i],
121
+ [VERSION, [NAME, "UC" + BROWSER]],
122
+ [
123
+ /microm.+\bqbcore\/([\w\.]+)/i,
124
+ /\bqbcore\/([\w\.]+).+microm/i,
125
+ /micromessenger\/([\w\.]+)/i
126
+ ],
127
+ [VERSION, [NAME, "WeChat"]],
128
+ [/konqueror\/([\w\.]+)/i],
129
+ [VERSION, [NAME, "Konqueror"]],
130
+ [/trident.+rv[: ]([\w\.]{1,9})\b.+like gecko/i],
131
+ [VERSION, [NAME, "IE"]],
132
+ [/ya(?:search)?browser\/([\w\.]+)/i],
133
+ [VERSION, [NAME, "Yandex"]],
134
+ [/slbrowser\/([\w\.]+)/i],
135
+ [VERSION, [NAME, "Smart Lenovo " + BROWSER]],
136
+ [/(avast|avg)\/([\w\.]+)/i],
137
+ [[
138
+ NAME,
139
+ /(.+)/,
140
+ "$1 Secure " + BROWSER
141
+ ], VERSION],
142
+ [/\bfocus\/([\w\.]+)/i],
143
+ [VERSION, [NAME, FIREFOX + " Focus"]],
144
+ [/\bopt\/([\w\.]+)/i],
145
+ [VERSION, [NAME, OPERA + " Touch"]],
146
+ [/coc_coc\w+\/([\w\.]+)/i],
147
+ [VERSION, [NAME, "Coc Coc"]],
148
+ [/dolfin\/([\w\.]+)/i],
149
+ [VERSION, [NAME, "Dolphin"]],
150
+ [/coast\/([\w\.]+)/i],
151
+ [VERSION, [NAME, OPERA + " Coast"]],
152
+ [/miuibrowser\/([\w\.]+)/i],
153
+ [VERSION, [NAME, "MIUI " + BROWSER]],
154
+ [/fxios\/([-\w\.]+)/i],
155
+ [VERSION, [NAME, FIREFOX]],
156
+ [/\bqihu|(qi?ho?o?|360)browser/i],
157
+ [[NAME, "360 " + BROWSER]],
158
+ [/(oculus|sailfish|huawei|vivo)browser\/([\w\.]+)/i],
159
+ [[
160
+ NAME,
161
+ /(.+)/,
162
+ "$1 " + BROWSER
163
+ ], VERSION],
164
+ [/samsungbrowser\/([\w\.]+)/i],
165
+ [VERSION, [NAME, SAMSUNG + " Internet"]],
166
+ [/(comodo_dragon)\/([\w\.]+)/i],
167
+ [[
168
+ NAME,
169
+ /_/g,
170
+ " "
171
+ ], VERSION],
172
+ [/metasr[\/ ]?([\d\.]+)/i],
173
+ [VERSION, [NAME, "Sogou Explorer"]],
174
+ [/(sogou)mo\w+\/([\d\.]+)/i],
175
+ [[NAME, "Sogou Mobile"], VERSION],
176
+ [
177
+ /(electron)\/([\w\.]+) safari/i,
178
+ /(tesla)(?: qtcarbrowser|\/(20\d\d\.[-\w\.]+))/i,
179
+ /m?(qqbrowser|2345Explorer)[\/ ]?([\w\.]+)/i
180
+ ],
181
+ [NAME, VERSION],
182
+ [/(lbbrowser)/i, /\[(linkedin)app\]/i],
183
+ [NAME],
184
+ [/((?:fban\/fbios|fb_iab\/fb4a)(?!.+fbav)|;fbav\/([\w\.]+);)/i],
185
+ [[NAME, FACEBOOK], VERSION],
186
+ [
187
+ /(Klarna)\/([\w\.]+)/i,
188
+ /(kakao(?:talk|story))[\/ ]([\w\.]+)/i,
189
+ /(naver)\(.*?(\d+\.[\w\.]+).*\)/i,
190
+ /safari (line)\/([\w\.]+)/i,
191
+ /\b(line)\/([\w\.]+)\/iab/i,
192
+ /(alipay)client\/([\w\.]+)/i,
193
+ /(twitter)(?:and| f.+e\/([\w\.]+))/i,
194
+ /(chromium|instagram|snapchat)[\/ ]([-\w\.]+)/i
195
+ ],
196
+ [NAME, VERSION],
197
+ [/\bgsa\/([\w\.]+) .*safari\//i],
198
+ [VERSION, [NAME, "GSA"]],
199
+ [/musical_ly(?:.+app_?version\/|_)([\w\.]+)/i],
200
+ [VERSION, [NAME, "TikTok"]],
201
+ [/headlesschrome(?:\/([\w\.]+)| )/i],
202
+ [VERSION, [NAME, CHROME + " Headless"]],
203
+ [/ wv\).+(chrome)\/([\w\.]+)/i],
204
+ [[NAME, CHROME + " WebView"], VERSION],
205
+ [/droid.+ version\/([\w\.]+)\b.+(?:mobile safari|safari)/i],
206
+ [VERSION, [NAME, "Android " + BROWSER]],
207
+ [/(chrome|omniweb|arora|[tizenoka]{5} ?browser)\/v?([\w\.]+)/i],
208
+ [NAME, VERSION],
209
+ [/version\/([\w\.\,]+) .*mobile\/\w+ (safari)/i],
210
+ [VERSION, [NAME, "Mobile Safari"]],
211
+ [/version\/([\w(\.|\,)]+) .*(mobile ?safari|safari)/i],
212
+ [VERSION, NAME],
213
+ [/webkit.+?(mobile ?safari|safari)(\/[\w\.]+)/i],
214
+ [NAME, [
215
+ VERSION,
216
+ strMapper,
217
+ oldSafariMap
218
+ ]],
219
+ [/(webkit|khtml)\/([\w\.]+)/i],
220
+ [NAME, VERSION],
221
+ [/(navigator|netscape\d?)\/([-\w\.]+)/i],
222
+ [[NAME, "Netscape"], VERSION],
223
+ [/mobile vr; rv:([\w\.]+)\).+firefox/i],
224
+ [VERSION, [NAME, FIREFOX + " Reality"]],
225
+ [
226
+ /ekiohf.+(flow)\/([\w\.]+)/i,
227
+ /(swiftfox)/i,
228
+ /(icedragon|iceweasel|camino|chimera|fennec|maemo browser|minimo|conkeror|klar)[\/ ]?([\w\.\+]+)/i,
229
+ /(seamonkey|k-meleon|icecat|iceape|firebird|phoenix|palemoon|basilisk|waterfox)\/([-\w\.]+)$/i,
230
+ /(firefox)\/([\w\.]+)/i,
231
+ /(mozilla)\/([\w\.]+) .+rv\:.+gecko\/\d+/i,
232
+ /(polaris|lynx|dillo|icab|doris|amaya|w3m|netsurf|sleipnir|obigo|mosaic|(?:go|ice|up)[\. ]?browser)[-\/ ]?v?([\w\.]+)/i,
233
+ /(links) \(([\w\.]+)/i,
234
+ /panasonic;(viera)/i
235
+ ],
236
+ [NAME, VERSION],
237
+ [/(cobalt)\/([\w\.]+)/i],
238
+ [NAME, [
239
+ VERSION,
240
+ /master.|lts./,
241
+ ""
242
+ ]]
243
+ ],
244
+ cpu: [
245
+ [/(?:(amd|x(?:(?:86|64)[-_])?|wow|win)64)[;\)]/i],
246
+ [[ARCHITECTURE, "amd64"]],
247
+ [/(ia32(?=;))/i],
248
+ [[ARCHITECTURE, lowerize]],
249
+ [/((?:i[346]|x)86)[;\)]/i],
250
+ [[ARCHITECTURE, "ia32"]],
251
+ [/\b(aarch64|arm(v?8e?l?|_?64))\b/i],
252
+ [[ARCHITECTURE, "arm64"]],
253
+ [/\b(arm(?:v[67])?ht?n?[fl]p?)\b/i],
254
+ [[ARCHITECTURE, "armhf"]],
255
+ [/windows (ce|mobile); ppc;/i],
256
+ [[ARCHITECTURE, "arm"]],
257
+ [/((?:ppc|powerpc)(?:64)?)(?: mac|;|\))/i],
258
+ [[
259
+ ARCHITECTURE,
260
+ /ower/,
261
+ EMPTY,
262
+ lowerize
263
+ ]],
264
+ [/(sun4\w)[;\)]/i],
265
+ [[ARCHITECTURE, "sparc"]],
266
+ [/((?:avr32|ia64(?=;))|68k(?=\))|\barm(?=v(?:[1-7]|[5-7]1)l?|;|eabi)|(?=atmel )avr|(?:irix|mips|sparc)(?:64)?\b|pa-risc)/i],
267
+ [[ARCHITECTURE, lowerize]]
268
+ ],
269
+ device: [
270
+ [/\b(sch-i[89]0\d|shw-m380s|sm-[ptx]\w{2,4}|gt-[pn]\d{2,4}|sgh-t8[56]9|nexus 10)/i],
271
+ [
272
+ MODEL,
273
+ [VENDOR, SAMSUNG],
274
+ [TYPE, TABLET]
275
+ ],
276
+ [
277
+ /\b((?:s[cgp]h|gt|sm)-\w+|sc[g-]?[\d]+a?|galaxy nexus)/i,
278
+ /samsung[- ]([-\w]+)/i,
279
+ /sec-(sgh\w+)/i
280
+ ],
281
+ [
282
+ MODEL,
283
+ [VENDOR, SAMSUNG],
284
+ [TYPE, MOBILE]
285
+ ],
286
+ [/(?:\/|\()(ip(?:hone|od)[\w, ]*)(?:\/|;)/i],
287
+ [
288
+ MODEL,
289
+ [VENDOR, APPLE],
290
+ [TYPE, MOBILE]
291
+ ],
292
+ [
293
+ /\((ipad);[-\w\),; ]+apple/i,
294
+ /applecoremedia\/[\w\.]+ \((ipad)/i,
295
+ /\b(ipad)\d\d?,\d\d?[;\]].+ios/i
296
+ ],
297
+ [
298
+ MODEL,
299
+ [VENDOR, APPLE],
300
+ [TYPE, TABLET]
301
+ ],
302
+ [/(macintosh);/i],
303
+ [MODEL, [VENDOR, APPLE]],
304
+ [/\b(sh-?[altvz]?\d\d[a-ekm]?)/i],
305
+ [
306
+ MODEL,
307
+ [VENDOR, SHARP],
308
+ [TYPE, MOBILE]
309
+ ],
310
+ [/\b((?:ag[rs][23]?|bah2?|sht?|btv)-a?[lw]\d{2})\b(?!.+d\/s)/i],
311
+ [
312
+ MODEL,
313
+ [VENDOR, HUAWEI],
314
+ [TYPE, TABLET]
315
+ ],
316
+ [/(?:huawei|honor)([-\w ]+)[;\)]/i, /\b(nexus 6p|\w{2,4}e?-[atu]?[ln][\dx][012359c][adn]?)\b(?!.+d\/s)/i],
317
+ [
318
+ MODEL,
319
+ [VENDOR, HUAWEI],
320
+ [TYPE, MOBILE]
321
+ ],
322
+ [
323
+ /\b(poco[\w ]+|m2\d{3}j\d\d[a-z]{2})(?: bui|\))/i,
324
+ /\b; (\w+) build\/hm\1/i,
325
+ /\b(hm[-_ ]?note?[_ ]?(?:\d\w)?) bui/i,
326
+ /\b(redmi[\-_ ]?(?:note|k)?[\w_ ]+)(?: bui|\))/i,
327
+ /oid[^\)]+; (m?[12][0-389][01]\w{3,6}[c-y])( bui|; wv|\))/i,
328
+ /\b(mi[-_ ]?(?:a\d|one|one[_ ]plus|note lte|max|cc)?[_ ]?(?:\d?\w?)[_ ]?(?:plus|se|lite)?)(?: bui|\))/i
329
+ ],
330
+ [
331
+ [
332
+ MODEL,
333
+ /_/g,
334
+ " "
335
+ ],
336
+ [VENDOR, XIAOMI],
337
+ [TYPE, MOBILE]
338
+ ],
339
+ [/oid[^\)]+; (2\d{4}(283|rpbf)[cgl])( bui|\))/i, /\b(mi[-_ ]?(?:pad)(?:[\w_ ]+))(?: bui|\))/i],
340
+ [
341
+ [
342
+ MODEL,
343
+ /_/g,
344
+ " "
345
+ ],
346
+ [VENDOR, XIAOMI],
347
+ [TYPE, TABLET]
348
+ ],
349
+ [/; (\w+) bui.+ oppo/i, /\b(cph[12]\d{3}|p(?:af|c[al]|d\w|e[ar])[mt]\d0|x9007|a101op)\b/i],
350
+ [
351
+ MODEL,
352
+ [VENDOR, "OPPO"],
353
+ [TYPE, MOBILE]
354
+ ],
355
+ [/\b(opd2\d{3}a?) bui/i],
356
+ [
357
+ MODEL,
358
+ [VENDOR, "OPPO"],
359
+ [TYPE, TABLET]
360
+ ],
361
+ [/vivo (\w+)(?: bui|\))/i, /\b(v[12]\d{3}\w?[at])(?: bui|;)/i],
362
+ [
363
+ MODEL,
364
+ [VENDOR, "Vivo"],
365
+ [TYPE, MOBILE]
366
+ ],
367
+ [/\b(rmx[1-3]\d{3})(?: bui|;|\))/i],
368
+ [
369
+ MODEL,
370
+ [VENDOR, "Realme"],
371
+ [TYPE, MOBILE]
372
+ ],
373
+ [
374
+ /\b(milestone|droid(?:[2-4x]| (?:bionic|x2|pro|razr))?:?( 4g)?)\b[\w ]+build\//i,
375
+ /\bmot(?:orola)?[- ](\w*)/i,
376
+ /((?:moto[\w\(\) ]+|xt\d{3,4}|nexus 6)(?= bui|\)))/i
377
+ ],
378
+ [
379
+ MODEL,
380
+ [VENDOR, MOTOROLA],
381
+ [TYPE, MOBILE]
382
+ ],
383
+ [/\b(mz60\d|xoom[2 ]{0,2}) build\//i],
384
+ [
385
+ MODEL,
386
+ [VENDOR, MOTOROLA],
387
+ [TYPE, TABLET]
388
+ ],
389
+ [/((?=lg)?[vl]k\-?\d{3}) bui| 3\.[-\w; ]{10}lg?-([06cv9]{3,4})/i],
390
+ [
391
+ MODEL,
392
+ [VENDOR, LG],
393
+ [TYPE, TABLET]
394
+ ],
395
+ [
396
+ /(lm(?:-?f100[nv]?|-[\w\.]+)(?= bui|\))|nexus [45])/i,
397
+ /\blg[-e;\/ ]+((?!browser|netcast|android tv)\w+)/i,
398
+ /\blg-?([\d\w]+) bui/i
399
+ ],
400
+ [
401
+ MODEL,
402
+ [VENDOR, LG],
403
+ [TYPE, MOBILE]
404
+ ],
405
+ [/(ideatab[-\w ]+)/i, /lenovo ?(s[56]000[-\w]+|tab(?:[\w ]+)|yt[-\d\w]{6}|tb[-\d\w]{6})/i],
406
+ [
407
+ MODEL,
408
+ [VENDOR, "Lenovo"],
409
+ [TYPE, TABLET]
410
+ ],
411
+ [/(?:maemo|nokia).*(n900|lumia \d+)/i, /nokia[-_ ]?([-\w\.]*)/i],
412
+ [
413
+ [
414
+ MODEL,
415
+ /_/g,
416
+ " "
417
+ ],
418
+ [VENDOR, "Nokia"],
419
+ [TYPE, MOBILE]
420
+ ],
421
+ [/(pixel c)\b/i],
422
+ [
423
+ MODEL,
424
+ [VENDOR, GOOGLE],
425
+ [TYPE, TABLET]
426
+ ],
427
+ [/droid.+; (pixel[\daxl ]{0,6})(?: bui|\))/i],
428
+ [
429
+ MODEL,
430
+ [VENDOR, GOOGLE],
431
+ [TYPE, MOBILE]
432
+ ],
433
+ [/droid.+ (a?\d[0-2]{2}so|[c-g]\d{4}|so[-gl]\w+|xq-a\w[4-7][12])(?= bui|\).+chrome\/(?![1-6]{0,1}\d\.))/i],
434
+ [
435
+ MODEL,
436
+ [VENDOR, SONY],
437
+ [TYPE, MOBILE]
438
+ ],
439
+ [/sony tablet [ps]/i, /\b(?:sony)?sgp\w+(?: bui|\))/i],
440
+ [
441
+ [MODEL, "Xperia Tablet"],
442
+ [VENDOR, SONY],
443
+ [TYPE, TABLET]
444
+ ],
445
+ [/ (kb2005|in20[12]5|be20[12][59])\b/i, /(?:one)?(?:plus)? (a\d0\d\d)(?: b|\))/i],
446
+ [
447
+ MODEL,
448
+ [VENDOR, "OnePlus"],
449
+ [TYPE, MOBILE]
450
+ ],
451
+ [
452
+ /(alexa)webm/i,
453
+ /(kf[a-z]{2}wi|aeo[c-r]{2})( bui|\))/i,
454
+ /(kf[a-z]+)( bui|\)).+silk\//i
455
+ ],
456
+ [
457
+ MODEL,
458
+ [VENDOR, AMAZON],
459
+ [TYPE, TABLET]
460
+ ],
461
+ [/((?:sd|kf)[0349hijorstuw]+)( bui|\)).+silk\//i],
462
+ [
463
+ [
464
+ MODEL,
465
+ /(.+)/g,
466
+ "Fire Phone $1"
467
+ ],
468
+ [VENDOR, AMAZON],
469
+ [TYPE, MOBILE]
470
+ ],
471
+ [/(playbook);[-\w\),; ]+(rim)/i],
472
+ [
473
+ MODEL,
474
+ VENDOR,
475
+ [TYPE, TABLET]
476
+ ],
477
+ [/\b((?:bb[a-f]|st[hv])100-\d)/i, /\(bb10; (\w+)/i],
478
+ [
479
+ MODEL,
480
+ [VENDOR, BLACKBERRY],
481
+ [TYPE, MOBILE]
482
+ ],
483
+ [/(?:\b|asus_)(transfo[prime ]{4,10} \w+|eeepc|slider \w+|nexus 7|padfone|p00[cj])/i],
484
+ [
485
+ MODEL,
486
+ [VENDOR, ASUS],
487
+ [TYPE, TABLET]
488
+ ],
489
+ [/ (z[bes]6[027][012][km][ls]|zenfone \d\w?)\b/i],
490
+ [
491
+ MODEL,
492
+ [VENDOR, ASUS],
493
+ [TYPE, MOBILE]
494
+ ],
495
+ [/(nexus 9)/i],
496
+ [
497
+ MODEL,
498
+ [VENDOR, "HTC"],
499
+ [TYPE, TABLET]
500
+ ],
501
+ [
502
+ /(htc)[-;_ ]{1,2}([\w ]+(?=\)| bui)|\w+)/i,
503
+ /(zte)[- ]([\w ]+?)(?: bui|\/|\))/i,
504
+ /(alcatel|geeksphone|nexian|panasonic(?!(?:;|\.))|sony(?!-bra))[-_ ]?([-\w]*)/i
505
+ ],
506
+ [
507
+ VENDOR,
508
+ [
509
+ MODEL,
510
+ /_/g,
511
+ " "
512
+ ],
513
+ [TYPE, MOBILE]
514
+ ],
515
+ [/droid.+; ([ab][1-7]-?[0178a]\d\d?)/i],
516
+ [
517
+ MODEL,
518
+ [VENDOR, "Acer"],
519
+ [TYPE, TABLET]
520
+ ],
521
+ [/droid.+; (m[1-5] note) bui/i, /\bmz-([-\w]{2,})/i],
522
+ [
523
+ MODEL,
524
+ [VENDOR, "Meizu"],
525
+ [TYPE, MOBILE]
526
+ ],
527
+ [/; ((?:power )?armor(?:[\w ]{0,8}))(?: bui|\))/i],
528
+ [
529
+ MODEL,
530
+ [VENDOR, "Ulefone"],
531
+ [TYPE, MOBILE]
532
+ ],
533
+ [
534
+ /(blackberry|benq|palm(?=\-)|sonyericsson|acer|asus|dell|meizu|motorola|polytron|infinix|tecno)[-_ ]?([-\w]*)/i,
535
+ /(hp) ([\w ]+\w)/i,
536
+ /(asus)-?(\w+)/i,
537
+ /(microsoft); (lumia[\w ]+)/i,
538
+ /(lenovo)[-_ ]?([-\w]+)/i,
539
+ /(jolla)/i,
540
+ /(oppo) ?([\w ]+) bui/i
541
+ ],
542
+ [
543
+ VENDOR,
544
+ MODEL,
545
+ [TYPE, MOBILE]
546
+ ],
547
+ [
548
+ /(kobo)\s(ereader|touch)/i,
549
+ /(archos) (gamepad2?)/i,
550
+ /(hp).+(touchpad(?!.+tablet)|tablet)/i,
551
+ /(kindle)\/([\w\.]+)/i,
552
+ /(nook)[\w ]+build\/(\w+)/i,
553
+ /(dell) (strea[kpr\d ]*[\dko])/i,
554
+ /(le[- ]+pan)[- ]+(\w{1,9}) bui/i,
555
+ /(trinity)[- ]*(t\d{3}) bui/i,
556
+ /(gigaset)[- ]+(q\w{1,9}) bui/i,
557
+ /(vodafone) ([\w ]+)(?:\)| bui)/i
558
+ ],
559
+ [
560
+ VENDOR,
561
+ MODEL,
562
+ [TYPE, TABLET]
563
+ ],
564
+ [/(surface duo)/i],
565
+ [
566
+ MODEL,
567
+ [VENDOR, MICROSOFT],
568
+ [TYPE, TABLET]
569
+ ],
570
+ [/droid [\d\.]+; (fp\du?)(?: b|\))/i],
571
+ [
572
+ MODEL,
573
+ [VENDOR, "Fairphone"],
574
+ [TYPE, MOBILE]
575
+ ],
576
+ [/(u304aa)/i],
577
+ [
578
+ MODEL,
579
+ [VENDOR, "AT&T"],
580
+ [TYPE, MOBILE]
581
+ ],
582
+ [/\bsie-(\w*)/i],
583
+ [
584
+ MODEL,
585
+ [VENDOR, "Siemens"],
586
+ [TYPE, MOBILE]
587
+ ],
588
+ [/\b(rct\w+) b/i],
589
+ [
590
+ MODEL,
591
+ [VENDOR, "RCA"],
592
+ [TYPE, TABLET]
593
+ ],
594
+ [/\b(venue[\d ]{2,7}) b/i],
595
+ [
596
+ MODEL,
597
+ [VENDOR, "Dell"],
598
+ [TYPE, TABLET]
599
+ ],
600
+ [/\b(q(?:mv|ta)\w+) b/i],
601
+ [
602
+ MODEL,
603
+ [VENDOR, "Verizon"],
604
+ [TYPE, TABLET]
605
+ ],
606
+ [/\b(?:barnes[& ]+noble |bn[rt])([\w\+ ]*) b/i],
607
+ [
608
+ MODEL,
609
+ [VENDOR, "Barnes & Noble"],
610
+ [TYPE, TABLET]
611
+ ],
612
+ [/\b(tm\d{3}\w+) b/i],
613
+ [
614
+ MODEL,
615
+ [VENDOR, "NuVision"],
616
+ [TYPE, TABLET]
617
+ ],
618
+ [/\b(k88) b/i],
619
+ [
620
+ MODEL,
621
+ [VENDOR, "ZTE"],
622
+ [TYPE, TABLET]
623
+ ],
624
+ [/\b(nx\d{3}j) b/i],
625
+ [
626
+ MODEL,
627
+ [VENDOR, "ZTE"],
628
+ [TYPE, MOBILE]
629
+ ],
630
+ [/\b(gen\d{3}) b.+49h/i],
631
+ [
632
+ MODEL,
633
+ [VENDOR, "Swiss"],
634
+ [TYPE, MOBILE]
635
+ ],
636
+ [/\b(zur\d{3}) b/i],
637
+ [
638
+ MODEL,
639
+ [VENDOR, "Swiss"],
640
+ [TYPE, TABLET]
641
+ ],
642
+ [/\b((zeki)?tb.*\b) b/i],
643
+ [
644
+ MODEL,
645
+ [VENDOR, "Zeki"],
646
+ [TYPE, TABLET]
647
+ ],
648
+ [/\b([yr]\d{2}) b/i, /\b(dragon[- ]+touch |dt)(\w{5}) b/i],
649
+ [
650
+ [VENDOR, "Dragon Touch"],
651
+ MODEL,
652
+ [TYPE, TABLET]
653
+ ],
654
+ [/\b(ns-?\w{0,9}) b/i],
655
+ [
656
+ MODEL,
657
+ [VENDOR, "Insignia"],
658
+ [TYPE, TABLET]
659
+ ],
660
+ [/\b((nxa|next)-?\w{0,9}) b/i],
661
+ [
662
+ MODEL,
663
+ [VENDOR, "NextBook"],
664
+ [TYPE, TABLET]
665
+ ],
666
+ [/\b(xtreme\_)?(v(1[045]|2[015]|[3469]0|7[05])) b/i],
667
+ [
668
+ [VENDOR, "Voice"],
669
+ MODEL,
670
+ [TYPE, MOBILE]
671
+ ],
672
+ [/\b(lvtel\-)?(v1[12]) b/i],
673
+ [
674
+ [VENDOR, "LvTel"],
675
+ MODEL,
676
+ [TYPE, MOBILE]
677
+ ],
678
+ [/\b(ph-1) /i],
679
+ [
680
+ MODEL,
681
+ [VENDOR, "Essential"],
682
+ [TYPE, MOBILE]
683
+ ],
684
+ [/\b(v(100md|700na|7011|917g).*\b) b/i],
685
+ [
686
+ MODEL,
687
+ [VENDOR, "Envizen"],
688
+ [TYPE, TABLET]
689
+ ],
690
+ [/\b(trio[-\w\. ]+) b/i],
691
+ [
692
+ MODEL,
693
+ [VENDOR, "MachSpeed"],
694
+ [TYPE, TABLET]
695
+ ],
696
+ [/\btu_(1491) b/i],
697
+ [
698
+ MODEL,
699
+ [VENDOR, "Rotor"],
700
+ [TYPE, TABLET]
701
+ ],
702
+ [/(shield[\w ]+) b/i],
703
+ [
704
+ MODEL,
705
+ [VENDOR, "Nvidia"],
706
+ [TYPE, TABLET]
707
+ ],
708
+ [/(sprint) (\w+)/i],
709
+ [
710
+ VENDOR,
711
+ MODEL,
712
+ [TYPE, MOBILE]
713
+ ],
714
+ [/(kin\.[onetw]{3})/i],
715
+ [
716
+ [
717
+ MODEL,
718
+ /\./g,
719
+ " "
720
+ ],
721
+ [VENDOR, MICROSOFT],
722
+ [TYPE, MOBILE]
723
+ ],
724
+ [/droid.+; (cc6666?|et5[16]|mc[239][23]x?|vc8[03]x?)\)/i],
725
+ [
726
+ MODEL,
727
+ [VENDOR, ZEBRA],
728
+ [TYPE, TABLET]
729
+ ],
730
+ [/droid.+; (ec30|ps20|tc[2-8]\d[kx])\)/i],
731
+ [
732
+ MODEL,
733
+ [VENDOR, ZEBRA],
734
+ [TYPE, MOBILE]
735
+ ],
736
+ [/smart-tv.+(samsung)/i],
737
+ [VENDOR, [TYPE, SMARTTV]],
738
+ [/hbbtv.+maple;(\d+)/i],
739
+ [
740
+ [
741
+ MODEL,
742
+ /^/,
743
+ "SmartTV"
744
+ ],
745
+ [VENDOR, SAMSUNG],
746
+ [TYPE, SMARTTV]
747
+ ],
748
+ [/(nux; netcast.+smarttv|lg (netcast\.tv-201\d|android tv))/i],
749
+ [[VENDOR, LG], [TYPE, SMARTTV]],
750
+ [/(apple) ?tv/i],
751
+ [
752
+ VENDOR,
753
+ [MODEL, APPLE + " TV"],
754
+ [TYPE, SMARTTV]
755
+ ],
756
+ [/crkey/i],
757
+ [
758
+ [MODEL, CHROME + "cast"],
759
+ [VENDOR, GOOGLE],
760
+ [TYPE, SMARTTV]
761
+ ],
762
+ [/droid.+aft(\w+)( bui|\))/i],
763
+ [
764
+ MODEL,
765
+ [VENDOR, AMAZON],
766
+ [TYPE, SMARTTV]
767
+ ],
768
+ [/\(dtv[\);].+(aquos)/i, /(aquos-tv[\w ]+)\)/i],
769
+ [
770
+ MODEL,
771
+ [VENDOR, SHARP],
772
+ [TYPE, SMARTTV]
773
+ ],
774
+ [/(bravia[\w ]+)( bui|\))/i],
775
+ [
776
+ MODEL,
777
+ [VENDOR, SONY],
778
+ [TYPE, SMARTTV]
779
+ ],
780
+ [/(mitv-\w{5}) bui/i],
781
+ [
782
+ MODEL,
783
+ [VENDOR, XIAOMI],
784
+ [TYPE, SMARTTV]
785
+ ],
786
+ [/Hbbtv.*(technisat) (.*);/i],
787
+ [
788
+ VENDOR,
789
+ MODEL,
790
+ [TYPE, SMARTTV]
791
+ ],
792
+ [/\b(roku)[\dx]*[\)\/]((?:dvp-)?[\d\.]*)/i, /hbbtv\/\d+\.\d+\.\d+ +\([\w\+ ]*; *([\w\d][^;]*);([^;]*)/i],
793
+ [
794
+ [VENDOR, trim],
795
+ [MODEL, trim],
796
+ [TYPE, SMARTTV]
797
+ ],
798
+ [/\b(android tv|smart[- ]?tv|opera tv|tv; rv:)\b/i],
799
+ [[TYPE, SMARTTV]],
800
+ [/(ouya)/i, /(nintendo) ([wids3utch]+)/i],
801
+ [
802
+ VENDOR,
803
+ MODEL,
804
+ [TYPE, CONSOLE]
805
+ ],
806
+ [/droid.+; (shield) bui/i],
807
+ [
808
+ MODEL,
809
+ [VENDOR, "Nvidia"],
810
+ [TYPE, CONSOLE]
811
+ ],
812
+ [/(playstation [345portablevi]+)/i],
813
+ [
814
+ MODEL,
815
+ [VENDOR, SONY],
816
+ [TYPE, CONSOLE]
817
+ ],
818
+ [/\b(xbox(?: one)?(?!; xbox))[\); ]/i],
819
+ [
820
+ MODEL,
821
+ [VENDOR, MICROSOFT],
822
+ [TYPE, CONSOLE]
823
+ ],
824
+ [/((pebble))app/i],
825
+ [
826
+ VENDOR,
827
+ MODEL,
828
+ [TYPE, WEARABLE]
829
+ ],
830
+ [/(watch)(?: ?os[,\/]|\d,\d\/)[\d\.]+/i],
831
+ [
832
+ MODEL,
833
+ [VENDOR, APPLE],
834
+ [TYPE, WEARABLE]
835
+ ],
836
+ [/droid.+; (glass) \d/i],
837
+ [
838
+ MODEL,
839
+ [VENDOR, GOOGLE],
840
+ [TYPE, WEARABLE]
841
+ ],
842
+ [/droid.+; (wt63?0{2,3})\)/i],
843
+ [
844
+ MODEL,
845
+ [VENDOR, ZEBRA],
846
+ [TYPE, WEARABLE]
847
+ ],
848
+ [/(quest( \d| pro)?)/i],
849
+ [
850
+ MODEL,
851
+ [VENDOR, FACEBOOK],
852
+ [TYPE, WEARABLE]
853
+ ],
854
+ [/(tesla)(?: qtcarbrowser|\/[-\w\.]+)/i],
855
+ [VENDOR, [TYPE, EMBEDDED]],
856
+ [/(aeobc)\b/i],
857
+ [
858
+ MODEL,
859
+ [VENDOR, AMAZON],
860
+ [TYPE, EMBEDDED]
861
+ ],
862
+ [/droid .+?; ([^;]+?)(?: bui|; wv\)|\) applew).+? mobile safari/i],
863
+ [MODEL, [TYPE, MOBILE]],
864
+ [/droid .+?; ([^;]+?)(?: bui|\) applew).+?(?! mobile) safari/i],
865
+ [MODEL, [TYPE, TABLET]],
866
+ [/\b((tablet|tab)[;\/]|focus\/\d(?!.+mobile))/i],
867
+ [[TYPE, TABLET]],
868
+ [/(phone|mobile(?:[;\/]| [ \w\/\.]*safari)|pda(?=.+windows ce))/i],
869
+ [[TYPE, MOBILE]],
870
+ [/(android[-\w\. ]{0,9});.+buil/i],
871
+ [MODEL, [VENDOR, "Generic"]]
872
+ ],
873
+ engine: [
874
+ [/windows.+ edge\/([\w\.]+)/i],
875
+ [VERSION, [NAME, EDGE + "HTML"]],
876
+ [/webkit\/537\.36.+chrome\/(?!27)([\w\.]+)/i],
877
+ [VERSION, [NAME, "Blink"]],
878
+ [
879
+ /(presto)\/([\w\.]+)/i,
880
+ /(webkit|trident|netfront|netsurf|amaya|lynx|w3m|goanna)\/([\w\.]+)/i,
881
+ /ekioh(flow)\/([\w\.]+)/i,
882
+ /(khtml|tasman|links)[\/ ]\(?([\w\.]+)/i,
883
+ /(icab)[\/ ]([23]\.[\d\.]+)/i,
884
+ /\b(libweb)/i
885
+ ],
886
+ [NAME, VERSION],
887
+ [/rv\:([\w\.]{1,9})\b.+(gecko)/i],
888
+ [VERSION, NAME]
889
+ ],
890
+ os: [
891
+ [/microsoft (windows) (vista|xp)/i],
892
+ [NAME, VERSION],
893
+ [/(windows (?:phone(?: os)?|mobile))[\/ ]?([\d\.\w ]*)/i],
894
+ [NAME, [
895
+ VERSION,
896
+ strMapper,
897
+ windowsVersionMap
898
+ ]],
899
+ [
900
+ /windows nt 6\.2; (arm)/i,
901
+ /windows[\/ ]?([ntce\d\. ]+\w)(?!.+xbox)/i,
902
+ /(?:win(?=3|9|n)|win 9x )([nt\d\.]+)/i
903
+ ],
904
+ [[
905
+ VERSION,
906
+ strMapper,
907
+ windowsVersionMap
908
+ ], [NAME, "Windows"]],
909
+ [
910
+ /ip[honead]{2,4}\b(?:.*os ([\w]+) like mac|; opera)/i,
911
+ /(?:ios;fbsv\/|iphone.+ios[\/ ])([\d\.]+)/i,
912
+ /cfnetwork\/.+darwin/i
913
+ ],
914
+ [[
915
+ VERSION,
916
+ /_/g,
917
+ "."
918
+ ], [NAME, "iOS"]],
919
+ [/(mac os x) ?([\w\. ]*)/i, /(macintosh|mac_powerpc\b)(?!.+haiku)/i],
920
+ [[NAME, MAC_OS], [
921
+ VERSION,
922
+ /_/g,
923
+ "."
924
+ ]],
925
+ [/droid ([\w\.]+)\b.+(android[- ]x86|harmonyos)/i],
926
+ [VERSION, NAME],
927
+ [
928
+ /(android|webos|qnx|bada|rim tablet os|maemo|meego|sailfish)[-\/ ]?([\w\.]*)/i,
929
+ /(blackberry)\w*\/([\w\.]*)/i,
930
+ /(tizen|kaios)[\/ ]([\w\.]+)/i,
931
+ /\((series40);/i
932
+ ],
933
+ [NAME, VERSION],
934
+ [/\(bb(10);/i],
935
+ [VERSION, [NAME, BLACKBERRY]],
936
+ [/(?:symbian ?os|symbos|s60(?=;)|series60)[-\/ ]?([\w\.]*)/i],
937
+ [VERSION, [NAME, "Symbian"]],
938
+ [/mozilla\/[\d\.]+ \((?:mobile|tablet|tv|mobile; [\w ]+); rv:.+ gecko\/([\w\.]+)/i],
939
+ [VERSION, [NAME, FIREFOX + " OS"]],
940
+ [/web0s;.+rt(tv)/i, /\b(?:hp)?wos(?:browser)?\/([\w\.]+)/i],
941
+ [VERSION, [NAME, "webOS"]],
942
+ [/watch(?: ?os[,\/]|\d,\d\/)([\d\.]+)/i],
943
+ [VERSION, [NAME, "watchOS"]],
944
+ [/crkey\/([\d\.]+)/i],
945
+ [VERSION, [NAME, CHROME + "cast"]],
946
+ [/(cros) [\w]+(?:\)| ([\w\.]+)\b)/i],
947
+ [[NAME, CHROMIUM_OS], VERSION],
948
+ [
949
+ /panasonic;(viera)/i,
950
+ /(netrange)mmh/i,
951
+ /(nettv)\/(\d+\.[\w\.]+)/i,
952
+ /(nintendo|playstation) ([wids345portablevuch]+)/i,
953
+ /(xbox); +xbox ([^\);]+)/i,
954
+ /\b(joli|palm)\b ?(?:os)?\/?([\w\.]*)/i,
955
+ /(mint)[\/\(\) ]?(\w*)/i,
956
+ /(mageia|vectorlinux)[; ]/i,
957
+ /([kxln]?ubuntu|debian|suse|opensuse|gentoo|arch(?= linux)|slackware|fedora|mandriva|centos|pclinuxos|red ?hat|zenwalk|linpus|raspbian|plan 9|minix|risc os|contiki|deepin|manjaro|elementary os|sabayon|linspire)(?: gnu\/linux)?(?: enterprise)?(?:[- ]linux)?(?:-gnu)?[-\/ ]?(?!chrom|package)([-\w\.]*)/i,
958
+ /(hurd|linux) ?([\w\.]*)/i,
959
+ /(gnu) ?([\w\.]*)/i,
960
+ /\b([-frentopcghs]{0,5}bsd|dragonfly)[\/ ]?(?!amd|[ix346]{1,2}86)([\w\.]*)/i,
961
+ /(haiku) (\w+)/i
962
+ ],
963
+ [NAME, VERSION],
964
+ [/(sunos) ?([\w\.\d]*)/i],
965
+ [[NAME, "Solaris"], VERSION],
966
+ [
967
+ /((?:open)?solaris)[-\/ ]?([\w\.]*)/i,
968
+ /(aix) ((\d)(?=\.|\)| )[\w\.])*/i,
969
+ /\b(beos|os\/2|amigaos|morphos|openvms|fuchsia|hp-ux|serenityos)/i,
970
+ /(unix) ?([\w\.]*)/i
971
+ ],
972
+ [NAME, VERSION]
973
+ ]
974
+ };
975
+ var UAParser$1 = function(ua, extensions) {
976
+ if (typeof ua === OBJ_TYPE) {
977
+ extensions = ua;
978
+ ua = undefined$1;
979
+ }
980
+ if (!(this instanceof UAParser$1)) return new UAParser$1(ua, extensions).getResult();
981
+ var _navigator = typeof window$1 !== UNDEF_TYPE && window$1.navigator ? window$1.navigator : undefined$1;
982
+ var _ua = ua || (_navigator && _navigator.userAgent ? _navigator.userAgent : EMPTY);
983
+ var _uach = _navigator && _navigator.userAgentData ? _navigator.userAgentData : undefined$1;
984
+ var _rgxmap = extensions ? extend(regexes, extensions) : regexes;
985
+ var _isSelfNav = _navigator && _navigator.userAgent == _ua;
986
+ this.getBrowser = function() {
987
+ var _browser = {};
988
+ _browser[NAME] = undefined$1;
989
+ _browser[VERSION] = undefined$1;
990
+ rgxMapper.call(_browser, _ua, _rgxmap.browser);
991
+ _browser[MAJOR] = majorize(_browser[VERSION]);
992
+ if (_isSelfNav && _navigator && _navigator.brave && typeof _navigator.brave.isBrave == FUNC_TYPE) _browser[NAME] = "Brave";
993
+ return _browser;
994
+ };
995
+ this.getCPU = function() {
996
+ var _cpu = {};
997
+ _cpu[ARCHITECTURE] = undefined$1;
998
+ rgxMapper.call(_cpu, _ua, _rgxmap.cpu);
999
+ return _cpu;
1000
+ };
1001
+ this.getDevice = function() {
1002
+ var _device = {};
1003
+ _device[VENDOR] = undefined$1;
1004
+ _device[MODEL] = undefined$1;
1005
+ _device[TYPE] = undefined$1;
1006
+ rgxMapper.call(_device, _ua, _rgxmap.device);
1007
+ if (_isSelfNav && !_device[TYPE] && _uach && _uach.mobile) _device[TYPE] = MOBILE;
1008
+ if (_isSelfNav && _device[MODEL] == "Macintosh" && _navigator && typeof _navigator.standalone !== UNDEF_TYPE && _navigator.maxTouchPoints && _navigator.maxTouchPoints > 2) {
1009
+ _device[MODEL] = "iPad";
1010
+ _device[TYPE] = TABLET;
1011
+ }
1012
+ return _device;
1013
+ };
1014
+ this.getEngine = function() {
1015
+ var _engine = {};
1016
+ _engine[NAME] = undefined$1;
1017
+ _engine[VERSION] = undefined$1;
1018
+ rgxMapper.call(_engine, _ua, _rgxmap.engine);
1019
+ return _engine;
1020
+ };
1021
+ this.getOS = function() {
1022
+ var _os = {};
1023
+ _os[NAME] = undefined$1;
1024
+ _os[VERSION] = undefined$1;
1025
+ rgxMapper.call(_os, _ua, _rgxmap.os);
1026
+ if (_isSelfNav && !_os[NAME] && _uach && _uach.platform && _uach.platform != "Unknown") _os[NAME] = _uach.platform.replace(/chrome os/i, CHROMIUM_OS).replace(/macos/i, MAC_OS);
1027
+ return _os;
1028
+ };
1029
+ this.getResult = function() {
1030
+ return {
1031
+ ua: this.getUA(),
1032
+ browser: this.getBrowser(),
1033
+ engine: this.getEngine(),
1034
+ os: this.getOS(),
1035
+ device: this.getDevice(),
1036
+ cpu: this.getCPU()
1037
+ };
1038
+ };
1039
+ this.getUA = function() {
1040
+ return _ua;
1041
+ };
1042
+ this.setUA = function(ua$1) {
1043
+ _ua = typeof ua$1 === STR_TYPE && ua$1.length > UA_MAX_LENGTH ? trim(ua$1, UA_MAX_LENGTH) : ua$1;
1044
+ return this;
1045
+ };
1046
+ this.setUA(_ua);
1047
+ return this;
1048
+ };
1049
+ UAParser$1.BROWSER = enumerize([
1050
+ NAME,
1051
+ VERSION,
1052
+ MAJOR
1053
+ ]);
1054
+ UAParser$1.CPU = enumerize([ARCHITECTURE]);
1055
+ UAParser$1.DEVICE = enumerize([
1056
+ MODEL,
1057
+ VENDOR,
1058
+ TYPE,
1059
+ CONSOLE,
1060
+ MOBILE,
1061
+ SMARTTV,
1062
+ TABLET,
1063
+ WEARABLE,
1064
+ EMBEDDED
1065
+ ]);
1066
+ UAParser$1.ENGINE = UAParser$1.OS = enumerize([NAME, VERSION]);
1067
+ if (typeof exports !== UNDEF_TYPE) {
1068
+ if (typeof module !== UNDEF_TYPE && module.exports) exports = module.exports = UAParser$1;
1069
+ exports.UAParser = UAParser$1;
1070
+ } else if (typeof define === FUNC_TYPE && define.amd) define(function() {
1071
+ return UAParser$1;
1072
+ });
1073
+ else if (typeof window$1 !== UNDEF_TYPE) window$1.UAParser = UAParser$1;
1074
+ var $ = typeof window$1 !== UNDEF_TYPE && (window$1.jQuery || window$1.Zepto);
1075
+ if ($ && !$.ua) {
1076
+ var parser = new UAParser$1();
1077
+ $.ua = parser.getResult();
1078
+ $.ua.get = function() {
1079
+ return parser.getUA();
1080
+ };
1081
+ $.ua.set = function(ua) {
1082
+ parser.setUA(ua);
1083
+ var result = parser.getResult();
1084
+ for (var prop in result) $.ua[prop] = result[prop];
1085
+ };
1086
+ }
1087
+ })(typeof window === "object" ? window : exports);
1088
+ }));
1089
+
1090
+ //#endregion
1091
+ //#region src/utils/promise.ts
1092
+ var import_ua_parser = require_ua_parser();
1093
+ function promiseWithResolver() {
1094
+ let resolve;
1095
+ let reject;
1096
+ return {
1097
+ promise: new Promise((_resolve, _reject) => {
1098
+ resolve = _resolve;
1099
+ reject = _reject;
1100
+ }),
1101
+ resolve,
1102
+ reject
1103
+ };
1104
+ }
1105
+
1106
+ //#endregion
6
1107
  //#region src/client/rpc.ts
7
1108
  const CONNECTION_META_KEY = "__VITE_DEVTOOLS_CONNECTION_META__";
1109
+ const CONNECTION_AUTH_ID_KEY = "__VITE_DEVTOOLS_CONNECTION_AUTH_ID__";
8
1110
  function isNumeric(str) {
9
1111
  if (str == null) return false;
10
1112
  return `${+str}` === `${str}`;
11
1113
  }
1114
+ function getConnectionAuthIdFromWindows(userAuthId) {
1115
+ const getters = [
1116
+ () => userAuthId,
1117
+ () => localStorage.getItem(CONNECTION_AUTH_ID_KEY),
1118
+ () => window?.[CONNECTION_AUTH_ID_KEY],
1119
+ () => globalThis?.[CONNECTION_AUTH_ID_KEY],
1120
+ () => parent.window?.[CONNECTION_AUTH_ID_KEY]
1121
+ ];
1122
+ let value;
1123
+ for (const getter of getters) try {
1124
+ value = getter();
1125
+ if (value) break;
1126
+ } catch {}
1127
+ if (!value) value = nanoid();
1128
+ localStorage.setItem(CONNECTION_AUTH_ID_KEY, value);
1129
+ globalThis[CONNECTION_AUTH_ID_KEY] = value;
1130
+ return value;
1131
+ }
12
1132
  function findConnectionMetaFromWindows() {
13
1133
  const getters = [
14
1134
  () => window?.[CONNECTION_META_KEY],
@@ -38,6 +1158,9 @@ async function getDevToolsRpcClient(options = {}) {
38
1158
  }
39
1159
  const url = isNumeric(connectionMeta.websocket) ? `${location.protocol.replace("http", "ws")}//${location.hostname}:${connectionMeta.websocket}` : connectionMeta.websocket;
40
1160
  const context = { rpc: void 0 };
1161
+ const authId = getConnectionAuthIdFromWindows(options.authId);
1162
+ let isTrusted = false;
1163
+ const trustedPromise = promiseWithResolver();
41
1164
  const clientRpc = new RpcFunctionsCollectorBase(context);
42
1165
  const serverRpc = createRpcClient(clientRpc.functions, {
43
1166
  preset: createWsRpcPreset({
@@ -46,9 +1169,47 @@ async function getDevToolsRpcClient(options = {}) {
46
1169
  }),
47
1170
  rpcOptions
48
1171
  });
1172
+ async function requestTrust() {
1173
+ if (isTrusted) return true;
1174
+ const info = new import_ua_parser.UAParser(navigator.userAgent).getResult();
1175
+ const ua = [
1176
+ info.browser.name,
1177
+ info.browser.version,
1178
+ "|",
1179
+ info.os.name,
1180
+ info.os.version,
1181
+ info.device.type
1182
+ ].filter((i) => i).join(" ");
1183
+ const result = await serverRpc.$call("vite:anonymous:auth", {
1184
+ authId,
1185
+ ua,
1186
+ origin: location.origin
1187
+ });
1188
+ isTrusted = result.isTrusted;
1189
+ trustedPromise.resolve(isTrusted);
1190
+ events.emit("rpc:is-trusted:updated", isTrusted);
1191
+ return result.isTrusted;
1192
+ }
1193
+ async function ensureTrusted(timeout = 6e4) {
1194
+ if (isTrusted) trustedPromise.resolve(true);
1195
+ if (timeout <= 0) return trustedPromise.promise;
1196
+ let clear = () => {};
1197
+ await Promise.race([trustedPromise.promise.then(clear), new Promise((resolve, reject) => {
1198
+ const id = setTimeout(() => {
1199
+ reject(/* @__PURE__ */ new Error("[Vite DevTools] Timeout waiting for rpc to be trusted"));
1200
+ }, timeout);
1201
+ clear = () => clearTimeout(id);
1202
+ })]);
1203
+ return isTrusted;
1204
+ }
49
1205
  const rpc = {
50
1206
  events,
1207
+ get isTrusted() {
1208
+ return isTrusted;
1209
+ },
51
1210
  connectionMeta,
1211
+ ensureTrusted,
1212
+ requestTrust,
52
1213
  call: (...args) => {
53
1214
  return serverRpc.$call(...args);
54
1215
  },
@@ -61,6 +1222,7 @@ async function getDevToolsRpcClient(options = {}) {
61
1222
  client: clientRpc
62
1223
  };
63
1224
  context.rpc = rpc;
1225
+ requestTrust();
64
1226
  return rpc;
65
1227
  }
66
1228