@feedmepos/mf-connect 0.1.38-beta.2 → 0.1.39-prod

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 (110) hide show
  1. package/dist/Analytic-D8WCDkga.js +427 -0
  2. package/dist/{App-D11A2JY1.js → App-CTnXtg1W.js} +352 -364
  3. package/dist/{Bin-9wV4Ah3M.js → Bin-BY6-bvFj.js} +8 -8
  4. package/dist/{Broadcast-I3BtSk8V.js → Broadcast-5VTEIQAr.js} +40 -40
  5. package/dist/{CampaignTypeDialog.vue_vue_type_script_setup_true_lang-XJqTXbKr.js → CampaignTypeDialog.vue_vue_type_script_setup_true_lang-BuAQxEM4.js} +18 -18
  6. package/dist/{Card-CqALG5RM.js → Card-8ivdV-Qz.js} +159 -159
  7. package/dist/{Collections-rg3SzoUb.js → Collections-CFszRHmE.js} +91 -103
  8. package/dist/{Credit-BNn1sYZv.js → Credit-DFslY__4.js} +74 -74
  9. package/dist/{EditCampaignSheet.vue_vue_type_script_setup_true_lang-PJ8q72XH.js → EditCampaignSheet.vue_vue_type_script_setup_true_lang-BvCLYtJ3.js} +488 -489
  10. package/dist/{EffectSheet.vue_vue_type_style_index_0_lang-Sww7KNle.js → EffectSheet.vue_vue_type_style_index_0_lang-Ci_bp7GH.js} +94 -94
  11. package/dist/{Experience-D_Qm8SUj.js → Experience-BxfiZNlY.js} +41 -41
  12. package/dist/{Game-CKXgXm6Q.js → Game-0FZJcLmj.js} +31 -31
  13. package/dist/ImageInput.vue_vue_type_script_setup_true_lang-ByhTB9Ie.js +144 -0
  14. package/dist/{Index-D4DGfUHd.js → Index-ByeKKbuM.js} +10 -10
  15. package/dist/Marketing-C7F4abzg.js +319 -0
  16. package/dist/{Member-B55vWHDd.js → Member-DP0fLSIV.js} +64 -64
  17. package/dist/MemberList-DFW2bMbr.js +1606 -0
  18. package/dist/MemberOverview-C2n9oJZh.js +58 -0
  19. package/dist/{MemberTransactions-CP5EI-W0.js → MemberTransactions-CW62fvgx.js} +1 -1
  20. package/dist/MessageInput.vue_vue_type_script_setup_true_lang-iJXNbgsB.js +455 -0
  21. package/dist/{Mission-CFvhROuB.js → Mission-DEgQHJw6.js} +21 -21
  22. package/dist/{Overview-4273yNwL.js → Overview-5jDtZKi8.js} +335 -335
  23. package/dist/{Point-B_-_C919.js → Point-D2lB1-xB.js} +41 -41
  24. package/dist/{Promotion-D2S3COxk.js → Promotion-Diz1gIa0.js} +42 -42
  25. package/dist/{Queue-BmS1Oi-C.js → Queue-DIAuq7HG.js} +51 -51
  26. package/dist/{Record-DRBl0M8g.js → Record-T608yda1.js} +9 -9
  27. package/dist/{Reward-8056NmfK.js → Reward-fZzHrHCW.js} +173 -173
  28. package/dist/{RewardGroup.vue_vue_type_script_setup_true_lang-CJ_WC2gV.js → RewardGroup.vue_vue_type_script_setup_true_lang-YOKVfimM.js} +11 -11
  29. package/dist/{RuleGroup.vue_vue_type_script_setup_true_lang-DqNQl_nz.js → RuleGroup.vue_vue_type_script_setup_true_lang-C3_lmBe5.js} +431 -431
  30. package/dist/Segment-DDQIzsrk.js +882 -0
  31. package/dist/{SelectItems.vue_vue_type_script_setup_true_lang-4nNkkklE.js → SelectItems.vue_vue_type_script_setup_true_lang-B5oUf91Q.js} +2 -2
  32. package/dist/{SendCollectionSheet.vue_vue_type_script_setup_true_lang-Dnf2oxOG.js → SendCollectionSheet.vue_vue_type_script_setup_true_lang-C2U6Kzvx.js} +11 -11
  33. package/dist/{SendVoucherSheet.vue_vue_type_script_setup_true_lang-BLYP-5U9.js → SendVoucherSheet.vue_vue_type_script_setup_true_lang-BRmqgxES.js} +3 -3
  34. package/dist/{Setting-BrJfYoru.js → Setting-CQNyXmp4.js} +432 -432
  35. package/dist/{Store-Bpl_4yZW.js → Store-CIA1Rtsg.js} +210 -210
  36. package/dist/StoreRewards-D5zlE6cE.js +423 -0
  37. package/dist/StoreTransactions.vue_vue_type_script_setup_true_lang-BkTYngJ_.js +995 -0
  38. package/dist/{TargetLocationInput.vue_vue_type_script_setup_true_lang-QucRaI08.js → TargetLocationInput.vue_vue_type_script_setup_true_lang-D8l3fQyz.js} +1 -1
  39. package/dist/{Tier-_LnXg3n6.js → Tier-jFXVOje_.js} +106 -106
  40. package/dist/{Title-B7AGStvx.js → Title-DVpZ1YMK.js} +131 -133
  41. package/dist/{Transaction-Chxv6V7u.js → Transaction-BF_wmok6.js} +2 -2
  42. package/dist/{UserRuleGroup.vue_vue_type_script_setup_true_lang-CzXNmobp.js → UserRuleGroup.vue_vue_type_script_setup_true_lang-Cex1Z43W.js} +6 -6
  43. package/dist/{Voucher-C5z2kOq9.js → Voucher-CaBMU5w0.js} +37 -37
  44. package/dist/VoucherEditor.vue_vue_type_script_setup_true_lang-BXt2fLOD.js +419 -0
  45. package/dist/{ZodTextField.vue_vue_type_script_setup_true_lang-BlXzEWA6.js → ZodTextField.vue_vue_type_script_setup_true_lang-CtHjWpUe.js} +1 -1
  46. package/dist/{app-BVojNX0w.js → app-CPhyKlyf.js} +1 -1
  47. package/dist/{app-7cvPyHJ7.js → app-DuIzRGvb.js} +124 -161
  48. package/dist/app.js +3 -4
  49. package/dist/{business-CmxV69wT.js → business-TTvv3aTz.js} +1 -1
  50. package/dist/{campaign-Dq5C_no-.js → campaign-BiMCoAzx.js} +3 -5
  51. package/dist/{campaign-CT_cNJEL.js → campaign-CjEVStN1.js} +9 -9
  52. package/dist/{campaign.enum-dp7yHKzF.js → campaign.enum-DpYmj9jp.js} +1 -1
  53. package/dist/campaign.fn-DJ6J98jS.js +758 -0
  54. package/dist/{collectible.enum-DxbB4DxT.js → collectible.enum-Cgmm_s-C.js} +1 -1
  55. package/dist/{collection.fn-CNZRdUgy.js → collection.fn-BsYCNgfJ.js} +2 -2
  56. package/dist/{dto-CT9zZbv9.js → dto-DgmHIlZ2.js} +4 -4
  57. package/dist/{effect-FIlOEC4H.js → effect-DnAVIDFy.js} +1 -1
  58. package/dist/{email-addresses-Ba7xImfX.js → email-addresses-CMRgb6Uv.js} +1 -1
  59. package/dist/{export-uzjZFNF9.js → export-DtarK6IJ.js} +3 -3
  60. package/dist/{helper-D4sAZde0.js → helper-BKZghMbF.js} +1 -1
  61. package/dist/{index-l2F5MnLF.js → index-2OAcPmuQ.js} +1 -1
  62. package/dist/{index-BI3m1Ehv.js → index-B0YZKHyu.js} +3 -3
  63. package/dist/{index-CH3z92VV.js → index-B5oXFFlO.js} +1 -1
  64. package/dist/{index-CvBcve-r.js → index-BQ3KHJXX.js} +1 -1
  65. package/dist/{index-B9pl4zRZ.js → index-B_893fH7.js} +79 -179
  66. package/dist/{index-CNJLP3D5.js → index-BoR-BOFw.js} +1 -1
  67. package/dist/{index-DNxa8Rqx.js → index-C7rl1eHp.js} +449 -516
  68. package/dist/{index-BXz54M1s.js → index-CBcbwf0k.js} +1 -1
  69. package/dist/{index-CS3Jmojj.js → index-CIztuDE4.js} +2462 -2453
  70. package/dist/{index-D5rvMvzx.js → index-CK67enPK.js} +1 -1
  71. package/dist/index-CuvNtC_M.js +61 -0
  72. package/dist/index-D2uZzjpn.js +44 -0
  73. package/dist/{index-CUfS9Kp1.js → index-DWdAUovq.js} +9 -9
  74. package/dist/{index-CONvJfKv.js → index-DkWcEDHA.js} +1 -1
  75. package/dist/{index-BjU8LVUC.js → index-VHu8hYtE.js} +385 -376
  76. package/dist/{index.esm2017-ATcsD5N4.js → index.esm2017-DkwLmmR_.js} +127 -127
  77. package/dist/{loading-BWGQSrCB.js → loading-BFkEqWR6.js} +1 -1
  78. package/dist/{membership-Cc4OZ8-U.js → membership-D0eN3i_T.js} +3 -3
  79. package/dist/{money-D7p8nfun.js → money-DS9ZQwSP.js} +1 -1
  80. package/dist/{number-CMJjC4qz.js → number-C8Gt93v9.js} +1 -1
  81. package/dist/objectid-Cr99eTPd.js +145 -0
  82. package/dist/{plugins-eQis66QR.js → plugins-DK_ue6Xa.js} +2 -2
  83. package/dist/{reward-DrnzbG20.js → reward-CW2dSLDW.js} +1 -1
  84. package/dist/{rule-CtRxkYXB.js → rule-CebKyXSm.js} +3 -3
  85. package/dist/{rule-builder-Di9RIYHF.js → rule-builder-kQq14RfN.js} +17 -17
  86. package/dist/style.css +1 -1
  87. package/dist/{template-C3UfY0v5.js → template-CxUxlb6-.js} +64 -64
  88. package/dist/{trigger-C9U7Zgad.js → trigger-RqJo06KA.js} +4 -4
  89. package/dist/{usePagination-BeF5K3M7.js → usePagination-JoYaROkV.js} +85 -85
  90. package/dist/{user-D7n9yYmO.js → user-DhV5Iy52.js} +1 -1
  91. package/dist/{vue-i18n-Bz45zC04.js → vue-i18n-BtvUK9hI.js} +419 -419
  92. package/dist/{xlsx-D4S4qbcZ.js → xlsx-WnLDq4qn.js} +381 -381
  93. package/package.json +3 -9
  94. package/dist/Analytic-BjSfI2Ff.js +0 -761
  95. package/dist/AuditLogs-DWCFYoRg.js +0 -1887
  96. package/dist/DateRangeChip.vue_vue_type_script_setup_true_lang-BUzUIIUW.js +0 -58
  97. package/dist/ImageInput.vue_vue_type_script_setup_true_lang-rWUkV9gn.js +0 -144
  98. package/dist/Marketing-Dn9A1vgH.js +0 -20073
  99. package/dist/MemberList-BWTG9Ohy.js +0 -1606
  100. package/dist/MemberOverview-wL_ailso.js +0 -58
  101. package/dist/MessageInput.vue_vue_type_script_setup_true_lang-D--_An-f.js +0 -60279
  102. package/dist/Segment-Bzq-pyhc.js +0 -882
  103. package/dist/StoreRewards-Cu7n7Pjz.js +0 -423
  104. package/dist/StoreTransactions.vue_vue_type_script_setup_true_lang-T3Wo2maC.js +0 -1029
  105. package/dist/VoucherEditor.vue_vue_type_script_setup_true_lang-DdGMrk2C.js +0 -419
  106. package/dist/campaign.fn-BYZgKDN7.js +0 -758
  107. package/dist/index-CsaQJMAR.js +0 -66
  108. package/dist/index-CwsMG2cV.js +0 -56
  109. package/dist/objectid-D5T27iny.js +0 -145
  110. package/dist/remy-vue-client-Cpppk9h-.js +0 -1693
@@ -1,1887 +0,0 @@
1
- import { defineComponent as ze, ref as xe, resolveComponent as $e, openBlock as P, createBlock as pi, unref as h, isRef as xi, withCtx as We, createElementVNode as x, createElementBlock as Q, Fragment as qe, renderList as Xe, toDisplayString as G, watch as ki, onBeforeMount as _i, createVNode as q, createCommentVNode as Si, h as Y } from "vue";
2
- import { components as Ke } from "@feedmepos/ui-library";
3
- import "./index-CS3Jmojj.js";
4
- import { h as J } from "./moment-BWErdI6_.js";
5
- import { _ as Je } from "./FilterChip.vue_vue_type_script_setup_true_lang-d8rh38tD.js";
6
- import { _ as Ei } from "./DateRangeChip.vue_vue_type_script_setup_true_lang-BUzUIIUW.js";
7
- import { u as Ai, _ as Ri } from "./usePagination-BeF5K3M7.js";
8
- import { c as Pe, a as Qe } from "./plugins-eQis66QR.js";
9
- import { d as he, e as Oi } from "./index-B9pl4zRZ.js";
10
- import "./index-DNxa8Rqx.js";
11
- import "./index-CUfS9Kp1.js";
12
- import "./index-CONvJfKv.js";
13
- import "./index-BI3m1Ehv.js";
14
- import { g as Ci, S as Ii, b as Ti } from "./index-BjU8LVUC.js";
15
- import { o as Mi } from "./objectId-dwaoBfJX.js";
16
- import { u as Di } from "./vue-i18n-Bz45zC04.js";
17
- var Li = "2.0.3", Fe = 500, Ze = "user-agent", ie = "", ei = "?", ke = "function", N = "undefined", te = "object", Ve = "string", E = "browser", M = "cpu", T = "device", C = "engine", O = "os", Z = "result", r = "name", e = "type", o = "vendor", a = "version", A = "architecture", pe = "major", i = "model", be = "console", w = "mobile", g = "tablet", k = "smarttv", I = "wearable", Ae = "xr", me = "embedded", se = "inapp", Ge = "brands", W = "formFactors", Ye = "fullVersionList", ee = "platform", je = "platformVersion", Se = "bitness", B = "sec-ch-ua", Ui = B + "-full-version-list", Hi = B + "-arch", qi = B + "-" + Se, Pi = B + "-form-factors", Fi = B + "-" + w, Vi = B + "-" + i, fi = B + "-" + ee, Ni = fi + "-version", hi = [Ge, Ye, w, i, ee, je, A, W, Se], ge = "Amazon", X = "Apple", ii = "ASUS", ti = "BlackBerry", j = "Google", oi = "Huawei", ri = "Lenovo", ai = "Honor", ve = "LG", Re = "Microsoft", Oe = "Motorola", Ce = "Nvidia", si = "OnePlus", Ie = "OPPO", ne = "Samsung", ni = "Sharp", le = "Sony", Te = "Xiaomi", Me = "Zebra", li = "Chrome", di = "Chromium", H = "Chromecast", Bi = "Edge", de = "Firefox", ue = "Opera", De = "Facebook", ui = "Sogou", K = "Mobile ", ce = " Browser", Ne = "Windows", zi = typeof window !== N, R = zi && window.navigator ? window.navigator : void 0, F = R && R.userAgentData ? R.userAgentData : void 0, $i = function(t, n) {
18
- var s = {}, m = n;
19
- if (!_e(n)) {
20
- m = {};
21
- for (var l in n)
22
- for (var p in n[l])
23
- m[p] = n[l][p].concat(m[p] ? m[p] : []);
24
- }
25
- for (var u in t)
26
- s[u] = m[u] && m[u].length % 2 === 0 ? m[u].concat(t[u]) : t[u];
27
- return s;
28
- }, Ee = function(t) {
29
- for (var n = {}, s = 0; s < t.length; s++)
30
- n[t[s].toUpperCase()] = t[s];
31
- return n;
32
- }, Be = function(t, n) {
33
- if (typeof t === te && t.length > 0) {
34
- for (var s in t)
35
- if (D(t[s]) == D(n)) return !0;
36
- return !1;
37
- }
38
- return re(t) ? D(n).indexOf(D(t)) !== -1 : !1;
39
- }, _e = function(t, n) {
40
- for (var s in t)
41
- return /^(browser|cpu|device|engine|os)$/.test(s) || (n ? _e(t[s]) : !1);
42
- }, re = function(t) {
43
- return typeof t === Ve;
44
- }, Le = function(t) {
45
- if (t) {
46
- for (var n = [], s = oe(/\\?\"/g, t).split(","), m = 0; m < s.length; m++)
47
- if (s[m].indexOf(";") > -1) {
48
- var l = fe(s[m]).split(";v=");
49
- n[m] = { brand: l[0], version: l[1] };
50
- } else
51
- n[m] = fe(s[m]);
52
- return n;
53
- }
54
- }, D = function(t) {
55
- return re(t) ? t.toLowerCase() : t;
56
- }, Ue = function(t) {
57
- return re(t) ? oe(/[^\d\.]/g, t).split(".")[0] : void 0;
58
- }, L = function(t) {
59
- for (var n in t) {
60
- var s = t[n];
61
- typeof s == te && s.length == 2 ? this[s[0]] = s[1] : this[s] = void 0;
62
- }
63
- return this;
64
- }, oe = function(t, n) {
65
- return re(n) ? n.replace(t, ie) : n;
66
- }, we = function(t) {
67
- return oe(/\\?\"/g, t);
68
- }, fe = function(t, n) {
69
- if (re(t))
70
- return t = oe(/^\s\s*/, t), typeof n === N ? t : t.substring(0, Fe);
71
- }, He = function(t, n) {
72
- if (!(!t || !n))
73
- for (var s = 0, m, l, p, u, c, d; s < n.length && !c; ) {
74
- var y = n[s], v = n[s + 1];
75
- for (m = l = 0; m < y.length && !c && y[m]; )
76
- if (c = y[m++].exec(t), c)
77
- for (p = 0; p < v.length; p++)
78
- d = c[++l], u = v[p], typeof u === te && u.length > 0 ? u.length === 2 ? typeof u[1] == ke ? this[u[0]] = u[1].call(this, d) : this[u[0]] = u[1] : u.length === 3 ? typeof u[1] === ke && !(u[1].exec && u[1].test) ? this[u[0]] = d ? u[1].call(this, d, u[2]) : void 0 : this[u[0]] = d ? d.replace(u[1], u[2]) : void 0 : u.length === 4 && (this[u[0]] = d ? u[3].call(this, d.replace(u[1], u[2])) : void 0) : this[u] = d || void 0;
79
- s += 2;
80
- }
81
- }, V = function(t, n) {
82
- for (var s in n)
83
- if (typeof n[s] === te && n[s].length > 0) {
84
- for (var m = 0; m < n[s].length; m++)
85
- if (Be(n[s][m], t))
86
- return s === ei ? void 0 : s;
87
- } else if (Be(n[s], t))
88
- return s === ei ? void 0 : s;
89
- return n.hasOwnProperty("*") ? n["*"] : t;
90
- }, ci = {
91
- ME: "4.90",
92
- "NT 3.11": "NT3.51",
93
- "NT 4.0": "NT4.0",
94
- 2e3: "NT 5.0",
95
- XP: ["NT 5.1", "NT 5.2"],
96
- Vista: "NT 6.0",
97
- 7: "NT 6.1",
98
- 8: "NT 6.2",
99
- "8.1": "NT 6.3",
100
- 10: ["NT 6.4", "NT 10.0"],
101
- RT: "ARM"
102
- }, wi = {
103
- embedded: "Automotive",
104
- mobile: "Mobile",
105
- tablet: ["Tablet", "EInk"],
106
- smarttv: "TV",
107
- wearable: "Watch",
108
- xr: ["VR", "XR"],
109
- "?": ["Desktop", "Unknown"],
110
- "*": void 0
111
- }, bi = {
112
- browser: [
113
- [
114
- // Most common regardless engine
115
- /\b(?:crmo|crios)\/([\w\.]+)/i
116
- // Chrome for Android/iOS
117
- ],
118
- [a, [r, K + "Chrome"]],
119
- [
120
- /edg(?:e|ios|a)?\/([\w\.]+)/i
121
- // Microsoft Edge
122
- ],
123
- [a, [r, "Edge"]],
124
- [
125
- // Presto based
126
- /(opera mini)\/([-\w\.]+)/i,
127
- // Opera Mini
128
- /(opera [mobiletab]{3,6})\b.+version\/([-\w\.]+)/i,
129
- // Opera Mobi/Tablet
130
- /(opera)(?:.+version\/|[\/ ]+)([\w\.]+)/i
131
- // Opera
132
- ],
133
- [r, a],
134
- [
135
- /opios[\/ ]+([\w\.]+)/i
136
- // Opera mini on iphone >= 8.0
137
- ],
138
- [a, [r, ue + " Mini"]],
139
- [
140
- /\bop(?:rg)?x\/([\w\.]+)/i
141
- // Opera GX
142
- ],
143
- [a, [r, ue + " GX"]],
144
- [
145
- /\bopr\/([\w\.]+)/i
146
- // Opera Webkit
147
- ],
148
- [a, [r, ue]],
149
- [
150
- // Mixed
151
- /\bb[ai]*d(?:uhd|[ub]*[aekoprswx]{5,6})[\/ ]?([\w\.]+)/i
152
- // Baidu
153
- ],
154
- [a, [r, "Baidu"]],
155
- [
156
- /\b(?:mxbrowser|mxios|myie2)\/?([-\w\.]*)\b/i
157
- // Maxthon
158
- ],
159
- [a, [r, "Maxthon"]],
160
- [
161
- /(kindle)\/([\w\.]+)/i,
162
- // Kindle
163
- /(lunascape|maxthon|netfront|jasmine|blazer|sleipnir)[\/ ]?([\w\.]*)/i,
164
- // Lunascape/Maxthon/Netfront/Jasmine/Blazer/Sleipnir
165
- // Trident based
166
- /(avant|iemobile|slim(?:browser|boat|jet))[\/ ]?([\d\.]*)/i,
167
- // Avant/IEMobile/SlimBrowser/SlimBoat/Slimjet
168
- /(?:ms|\()(ie) ([\w\.]+)/i,
169
- // Internet Explorer
170
- // Blink/Webkit/KHTML based // Flock/RockMelt/Midori/Epiphany/Silk/Skyfire/Bolt/Iron/Iridium/PhantomJS/Bowser/QupZilla/Falkon/LG Browser/Otter/qutebrowser/Dooble
171
- /(flock|rockmelt|midori|epiphany|silk|skyfire|ovibrowser|bolt|iron|vivaldi|iridium|phantomjs|bowser|qupzilla|falkon|rekonq|puffin|brave|whale(?!.+naver)|qqbrowserlite|duckduckgo|klar|helio|(?=comodo_)?dragon|otter|dooble|(?:lg |qute)browser)\/([-\w\.]+)/i,
172
- // Rekonq/Puffin/Brave/Whale/QQBrowserLite/QQ//Vivaldi/DuckDuckGo/Klar/Helio/Dragon
173
- /(heytap|ovi|115|surf)browser\/([\d\.]+)/i,
174
- // HeyTap/Ovi/115/Surf
175
- /(ecosia|weibo)(?:__| \w+@)([\d\.]+)/i
176
- // Ecosia/Weibo
177
- ],
178
- [r, a],
179
- [
180
- /quark(?:pc)?\/([-\w\.]+)/i
181
- // Quark
182
- ],
183
- [a, [r, "Quark"]],
184
- [
185
- /\bddg\/([\w\.]+)/i
186
- // DuckDuckGo
187
- ],
188
- [a, [r, "DuckDuckGo"]],
189
- [
190
- /(?:\buc? ?browser|(?:juc.+)ucweb)[\/ ]?([\w\.]+)/i
191
- // UCBrowser
192
- ],
193
- [a, [r, "UCBrowser"]],
194
- [
195
- /microm.+\bqbcore\/([\w\.]+)/i,
196
- // WeChat Desktop for Windows Built-in Browser
197
- /\bqbcore\/([\w\.]+).+microm/i,
198
- /micromessenger\/([\w\.]+)/i
199
- // WeChat
200
- ],
201
- [a, [r, "WeChat"]],
202
- [
203
- /konqueror\/([\w\.]+)/i
204
- // Konqueror
205
- ],
206
- [a, [r, "Konqueror"]],
207
- [
208
- /trident.+rv[: ]([\w\.]{1,9})\b.+like gecko/i
209
- // IE11
210
- ],
211
- [a, [r, "IE"]],
212
- [
213
- /ya(?:search)?browser\/([\w\.]+)/i
214
- // Yandex
215
- ],
216
- [a, [r, "Yandex"]],
217
- [
218
- /slbrowser\/([\w\.]+)/i
219
- // Smart Lenovo Browser
220
- ],
221
- [a, [r, "Smart " + ri + ce]],
222
- [
223
- /(avast|avg)\/([\w\.]+)/i
224
- // Avast/AVG Secure Browser
225
- ],
226
- [[r, /(.+)/, "$1 Secure" + ce], a],
227
- [
228
- /\bfocus\/([\w\.]+)/i
229
- // Firefox Focus
230
- ],
231
- [a, [r, de + " Focus"]],
232
- [
233
- /\bopt\/([\w\.]+)/i
234
- // Opera Touch
235
- ],
236
- [a, [r, ue + " Touch"]],
237
- [
238
- /coc_coc\w+\/([\w\.]+)/i
239
- // Coc Coc Browser
240
- ],
241
- [a, [r, "Coc Coc"]],
242
- [
243
- /dolfin\/([\w\.]+)/i
244
- // Dolphin
245
- ],
246
- [a, [r, "Dolphin"]],
247
- [
248
- /coast\/([\w\.]+)/i
249
- // Opera Coast
250
- ],
251
- [a, [r, ue + " Coast"]],
252
- [
253
- /miuibrowser\/([\w\.]+)/i
254
- // MIUI Browser
255
- ],
256
- [a, [r, "MIUI" + ce]],
257
- [
258
- /fxios\/([\w\.-]+)/i
259
- // Firefox for iOS
260
- ],
261
- [a, [r, K + de]],
262
- [
263
- /\bqihoobrowser\/?([\w\.]*)/i
264
- // 360
265
- ],
266
- [a, [r, "360"]],
267
- [
268
- /\b(qq)\/([\w\.]+)/i
269
- // QQ
270
- ],
271
- [[r, /(.+)/, "$1Browser"], a],
272
- [
273
- /(oculus|sailfish|huawei|vivo|pico)browser\/([\w\.]+)/i
274
- ],
275
- [[r, /(.+)/, "$1" + ce], a],
276
- [
277
- // Oculus/Sailfish/HuaweiBrowser/VivoBrowser/PicoBrowser
278
- /samsungbrowser\/([\w\.]+)/i
279
- // Samsung Internet
280
- ],
281
- [a, [r, ne + " Internet"]],
282
- [
283
- /metasr[\/ ]?([\d\.]+)/i
284
- // Sogou Explorer
285
- ],
286
- [a, [r, ui + " Explorer"]],
287
- [
288
- /(sogou)mo\w+\/([\d\.]+)/i
289
- // Sogou Mobile
290
- ],
291
- [[r, ui + " Mobile"], a],
292
- [
293
- /(electron)\/([\w\.]+) safari/i,
294
- // Electron-based App
295
- /(tesla)(?: qtcarbrowser|\/(20\d\d\.[-\w\.]+))/i,
296
- // Tesla
297
- /m?(qqbrowser|2345(?=browser|chrome|explorer))\w*[\/ ]?v?([\w\.]+)/i
298
- // QQ/2345
299
- ],
300
- [r, a],
301
- [
302
- /(lbbrowser|rekonq)/i
303
- // LieBao Browser/Rekonq
304
- ],
305
- [r],
306
- [
307
- /ome\/([\w\.]+) \w* ?(iron) saf/i,
308
- // Iron
309
- /ome\/([\w\.]+).+qihu (360)[es]e/i
310
- // 360
311
- ],
312
- [a, r],
313
- [
314
- // WebView
315
- /((?:fban\/fbios|fb_iab\/fb4a)(?!.+fbav)|;fbav\/([\w\.]+);)/i
316
- // Facebook App for iOS & Android
317
- ],
318
- [[r, De], a, [e, se]],
319
- [
320
- /(Klarna)\/([\w\.]+)/i,
321
- // Klarna Shopping Browser for iOS & Android
322
- /(kakao(?:talk|story))[\/ ]([\w\.]+)/i,
323
- // Kakao App
324
- /(naver)\(.*?(\d+\.[\w\.]+).*\)/i,
325
- // Naver InApp
326
- /(daum)apps[\/ ]([\w\.]+)/i,
327
- // Daum App
328
- /safari (line)\/([\w\.]+)/i,
329
- // Line App for iOS
330
- /\b(line)\/([\w\.]+)\/iab/i,
331
- // Line App for Android
332
- /(alipay)client\/([\w\.]+)/i,
333
- // Alipay
334
- /(twitter)(?:and| f.+e\/([\w\.]+))/i,
335
- // Twitter
336
- /(instagram|snapchat)[\/ ]([-\w\.]+)/i
337
- // Instagram/Snapchat
338
- ],
339
- [r, a, [e, se]],
340
- [
341
- /\bgsa\/([\w\.]+) .*safari\//i
342
- // Google Search Appliance on iOS
343
- ],
344
- [a, [r, "GSA"], [e, se]],
345
- [
346
- /musical_ly(?:.+app_?version\/|_)([\w\.]+)/i
347
- // TikTok
348
- ],
349
- [a, [r, "TikTok"], [e, se]],
350
- [
351
- /\[(linkedin)app\]/i
352
- // LinkedIn App for iOS & Android
353
- ],
354
- [r, [e, se]],
355
- [
356
- /(chromium)[\/ ]([-\w\.]+)/i
357
- // Chromium
358
- ],
359
- [r, a],
360
- [
361
- /headlesschrome(?:\/([\w\.]+)| )/i
362
- // Chrome Headless
363
- ],
364
- [a, [r, li + " Headless"]],
365
- [
366
- / wv\).+(chrome)\/([\w\.]+)/i
367
- // Chrome WebView
368
- ],
369
- [[r, li + " WebView"], a],
370
- [
371
- /droid.+ version\/([\w\.]+)\b.+(?:mobile safari|safari)/i
372
- // Android Browser
373
- ],
374
- [a, [r, "Android" + ce]],
375
- [
376
- /chrome\/([\w\.]+) mobile/i
377
- // Chrome Mobile
378
- ],
379
- [a, [r, K + "Chrome"]],
380
- [
381
- /(chrome|omniweb|arora|[tizenoka]{5} ?browser)\/v?([\w\.]+)/i
382
- // Chrome/OmniWeb/Arora/Tizen/Nokia
383
- ],
384
- [r, a],
385
- [
386
- /version\/([\w\.\,]+) .*mobile(?:\/\w+ | ?)safari/i
387
- // Safari Mobile
388
- ],
389
- [a, [r, K + "Safari"]],
390
- [
391
- /iphone .*mobile(?:\/\w+ | ?)safari/i
392
- ],
393
- [[r, K + "Safari"]],
394
- [
395
- /version\/([\w\.\,]+) .*(safari)/i
396
- // Safari
397
- ],
398
- [a, r],
399
- [
400
- /webkit.+?(mobile ?safari|safari)(\/[\w\.]+)/i
401
- // Safari < 3.0
402
- ],
403
- [r, [a, "1"]],
404
- [
405
- /(webkit|khtml)\/([\w\.]+)/i
406
- ],
407
- [r, a],
408
- [
409
- // Gecko based
410
- /(?:mobile|tablet);.*(firefox)\/([\w\.-]+)/i
411
- // Firefox Mobile
412
- ],
413
- [[r, K + de], a],
414
- [
415
- /(navigator|netscape\d?)\/([-\w\.]+)/i
416
- // Netscape
417
- ],
418
- [[r, "Netscape"], a],
419
- [
420
- /(wolvic|librewolf)\/([\w\.]+)/i
421
- // Wolvic/LibreWolf
422
- ],
423
- [r, a],
424
- [
425
- /mobile vr; rv:([\w\.]+)\).+firefox/i
426
- // Firefox Reality
427
- ],
428
- [a, [r, de + " Reality"]],
429
- [
430
- /ekiohf.+(flow)\/([\w\.]+)/i,
431
- // Flow
432
- /(swiftfox)/i,
433
- // Swiftfox
434
- /(icedragon|iceweasel|camino|chimera|fennec|maemo browser|minimo|conkeror)[\/ ]?([\w\.\+]+)/i,
435
- // IceDragon/Iceweasel/Camino/Chimera/Fennec/Maemo/Minimo/Conkeror
436
- /(seamonkey|k-meleon|icecat|iceape|firebird|phoenix|palemoon|basilisk|waterfox)\/([-\w\.]+)$/i,
437
- // Firefox/SeaMonkey/K-Meleon/IceCat/IceApe/Firebird/Phoenix
438
- /(firefox)\/([\w\.]+)/i,
439
- // Other Firefox-based
440
- /(mozilla)\/([\w\.]+) .+rv\:.+gecko\/\d+/i,
441
- // Mozilla
442
- // Other
443
- /(amaya|dillo|doris|icab|ladybird|lynx|mosaic|netsurf|obigo|polaris|w3m|(?:go|ice|up)[\. ]?browser)[-\/ ]?v?([\w\.]+)/i,
444
- // Polaris/Lynx/Dillo/iCab/Doris/Amaya/w3m/NetSurf/Obigo/Mosaic/Go/ICE/UP.Browser/Ladybird
445
- /\b(links) \(([\w\.]+)/i
446
- // Links
447
- ],
448
- [r, [a, /_/g, "."]],
449
- [
450
- /(cobalt)\/([\w\.]+)/i
451
- // Cobalt
452
- ],
453
- [r, [a, /[^\d\.]+./, ie]]
454
- ],
455
- cpu: [
456
- [
457
- /\b((amd|x|x86[-_]?|wow|win)64)\b/i
458
- // AMD64 (x64)
459
- ],
460
- [[A, "amd64"]],
461
- [
462
- /(ia32(?=;))/i,
463
- // IA32 (quicktime)
464
- /\b((i[346]|x)86)(pc)?\b/i
465
- // IA32 (x86)
466
- ],
467
- [[A, "ia32"]],
468
- [
469
- /\b(aarch64|arm(v?[89]e?l?|_?64))\b/i
470
- // ARM64
471
- ],
472
- [[A, "arm64"]],
473
- [
474
- /\b(arm(v[67])?ht?n?[fl]p?)\b/i
475
- // ARMHF
476
- ],
477
- [[A, "armhf"]],
478
- [
479
- // PocketPC mistakenly identified as PowerPC
480
- /( (ce|mobile); ppc;|\/[\w\.]+arm\b)/i
481
- ],
482
- [[A, "arm"]],
483
- [
484
- /((ppc|powerpc)(64)?)( mac|;|\))/i
485
- // PowerPC
486
- ],
487
- [[A, /ower/, ie, D]],
488
- [
489
- / sun4\w[;\)]/i
490
- // SPARC
491
- ],
492
- [[A, "sparc"]],
493
- [
494
- /\b(avr32|ia64(?=;)|68k(?=\))|\barm(?=v([1-7]|[5-7]1)l?|;|eabi)|(irix|mips|sparc)(64)?\b|pa-risc)/i
495
- // IA64, 68K, ARM/64, AVR/32, IRIX/64, MIPS/64, SPARC/64, PA-RISC
496
- ],
497
- [[A, D]]
498
- ],
499
- device: [
500
- [
501
- //////////////////////////
502
- // MOBILES & TABLETS
503
- /////////////////////////
504
- // Samsung
505
- /\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
506
- ],
507
- [i, [o, ne], [e, g]],
508
- [
509
- /\b((?:s[cgp]h|gt|sm)-(?![lr])\w+|sc[g-]?[\d]+a?|galaxy nexus)/i,
510
- /samsung[- ]((?!sm-[lr])[-\w]+)/i,
511
- /sec-(sgh\w+)/i
512
- ],
513
- [i, [o, ne], [e, w]],
514
- [
515
- // Apple
516
- /(?:\/|\()(ip(?:hone|od)[\w, ]*)(?:\/|;)/i
517
- // iPod/iPhone
518
- ],
519
- [i, [o, X], [e, w]],
520
- [
521
- /\((ipad);[-\w\),; ]+apple/i,
522
- // iPad
523
- /applecoremedia\/[\w\.]+ \((ipad)/i,
524
- /\b(ipad)\d\d?,\d\d?[;\]].+ios/i
525
- ],
526
- [i, [o, X], [e, g]],
527
- [
528
- /(macintosh);/i
529
- ],
530
- [i, [o, X]],
531
- [
532
- // Sharp
533
- /\b(sh-?[altvz]?\d\d[a-ekm]?)/i
534
- ],
535
- [i, [o, ni], [e, w]],
536
- [
537
- // Honor
538
- /\b((?:brt|eln|hey2?|gdi|jdn)-a?[lnw]09|(?:ag[rm]3?|jdn2|kob2)-a?[lw]0[09]hn)(?: bui|\)|;)/i
539
- ],
540
- [i, [o, ai], [e, g]],
541
- [
542
- /honor([-\w ]+)[;\)]/i
543
- ],
544
- [i, [o, ai], [e, w]],
545
- [
546
- // Huawei
547
- /\b((?:ag[rs][2356]?k?|bah[234]?|bg[2o]|bt[kv]|cmr|cpn|db[ry]2?|jdn2|got|kob2?k?|mon|pce|scm|sht?|[tw]gr|vrd)-[ad]?[lw][0125][09]b?|605hw|bg2-u03|(?:gem|fdr|m2|ple|t1)-[7a]0[1-4][lu]|t1-a2[13][lw]|mediapad[\w\. ]*(?= bui|\)))\b(?!.+d\/s)/i
548
- ],
549
- [i, [o, oi], [e, g]],
550
- [
551
- /(?:huawei)([-\w ]+)[;\)]/i,
552
- /\b(nexus 6p|\w{2,4}e?-[atu]?[ln][\dx][012359c][adn]?)\b(?!.+d\/s)/i
553
- ],
554
- [i, [o, oi], [e, w]],
555
- [
556
- // Xiaomi
557
- /oid[^\)]+; (2[\dbc]{4}(182|283|rp\w{2})[cgl]|m2105k81a?c)(?: bui|\))/i,
558
- /\b((?:red)?mi[-_ ]?pad[\w- ]*)(?: bui|\))/i
559
- // Mi Pad tablets
560
- ],
561
- [[i, /_/g, " "], [o, Te], [e, g]],
562
- [
563
- /\b(poco[\w ]+|m2\d{3}j\d\d[a-z]{2})(?: bui|\))/i,
564
- // Xiaomi POCO
565
- /\b; (\w+) build\/hm\1/i,
566
- // Xiaomi Hongmi 'numeric' models
567
- /\b(hm[-_ ]?note?[_ ]?(?:\d\w)?) bui/i,
568
- // Xiaomi Hongmi
569
- /\b(redmi[\-_ ]?(?:note|k)?[\w_ ]+)(?: bui|\))/i,
570
- // Xiaomi Redmi
571
- /oid[^\)]+; (m?[12][0-389][01]\w{3,6}[c-y])( bui|; wv|\))/i,
572
- // Xiaomi Redmi 'numeric' models
573
- /\b(mi[-_ ]?(?:a\d|one|one[_ ]plus|note lte|max|cc)?[_ ]?(?:\d?\w?)[_ ]?(?:plus|se|lite|pro)?)(?: bui|\))/i,
574
- // Xiaomi Mi
575
- / ([\w ]+) miui\/v?\d/i
576
- ],
577
- [[i, /_/g, " "], [o, Te], [e, w]],
578
- [
579
- // OPPO
580
- /; (\w+) bui.+ oppo/i,
581
- /\b(cph[12]\d{3}|p(?:af|c[al]|d\w|e[ar])[mt]\d0|x9007|a101op)\b/i
582
- ],
583
- [i, [o, Ie], [e, w]],
584
- [
585
- /\b(opd2(\d{3}a?))(?: bui|\))/i
586
- ],
587
- [i, [o, V, { OnePlus: ["304", "403", "203"], "*": Ie }], [e, g]],
588
- [
589
- // BLU Vivo Series
590
- /(vivo (5r?|6|8l?|go|one|s|x[il]?[2-4]?)[\w\+ ]*)(?: bui|\))/i
591
- ],
592
- [i, [o, "BLU"], [e, w]],
593
- [
594
- // Vivo
595
- /; vivo (\w+)(?: bui|\))/i,
596
- /\b(v[12]\d{3}\w?[at])(?: bui|;)/i
597
- ],
598
- [i, [o, "Vivo"], [e, w]],
599
- [
600
- // Realme
601
- /\b(rmx[1-3]\d{3})(?: bui|;|\))/i
602
- ],
603
- [i, [o, "Realme"], [e, w]],
604
- [
605
- // Motorola
606
- /\b(milestone|droid(?:[2-4x]| (?:bionic|x2|pro|razr))?:?( 4g)?)\b[\w ]+build\//i,
607
- /\bmot(?:orola)?[- ](\w*)/i,
608
- /((?:moto(?! 360)[\w\(\) ]+|xt\d{3,4}|nexus 6)(?= bui|\)))/i
609
- ],
610
- [i, [o, Oe], [e, w]],
611
- [
612
- /\b(mz60\d|xoom[2 ]{0,2}) build\//i
613
- ],
614
- [i, [o, Oe], [e, g]],
615
- [
616
- // LG
617
- /((?=lg)?[vl]k\-?\d{3}) bui| 3\.[-\w; ]{10}lg?-([06cv9]{3,4})/i
618
- ],
619
- [i, [o, ve], [e, g]],
620
- [
621
- /(lm(?:-?f100[nv]?|-[\w\.]+)(?= bui|\))|nexus [45])/i,
622
- /\blg[-e;\/ ]+(?!.*(?:browser|netcast|android tv|watch))(\w+)/i,
623
- /\blg-?([\d\w]+) bui/i
624
- ],
625
- [i, [o, ve], [e, w]],
626
- [
627
- // Lenovo
628
- /(ideatab[-\w ]+|602lv|d-42a|a101lv|a2109a|a3500-hv|s[56]000|pb-6505[my]|tb-?x?\d{3,4}(?:f[cu]|xu|[av])|yt\d?-[jx]?\d+[lfmx])( bui|;|\)|\/)/i,
629
- /lenovo ?(b[68]0[08]0-?[hf]?|tab(?:[\w- ]+?)|tb[\w-]{6,7})( bui|;|\)|\/)/i
630
- ],
631
- [i, [o, ri], [e, g]],
632
- [
633
- // Nokia
634
- /(nokia) (t[12][01])/i
635
- ],
636
- [o, i, [e, g]],
637
- [
638
- /(?:maemo|nokia).*(n900|lumia \d+|rm-\d+)/i,
639
- /nokia[-_ ]?(([-\w\. ]*))/i
640
- ],
641
- [[i, /_/g, " "], [e, w], [o, "Nokia"]],
642
- [
643
- // Google
644
- /(pixel (c|tablet))\b/i
645
- // Google Pixel C/Tablet
646
- ],
647
- [i, [o, j], [e, g]],
648
- [
649
- /droid.+; (pixel[\daxl ]{0,6})(?: bui|\))/i
650
- // Google Pixel
651
- ],
652
- [i, [o, j], [e, w]],
653
- [
654
- // Sony
655
- /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
656
- ],
657
- [i, [o, le], [e, w]],
658
- [
659
- /sony tablet [ps]/i,
660
- /\b(?:sony)?sgp\w+(?: bui|\))/i
661
- ],
662
- [[i, "Xperia Tablet"], [o, le], [e, g]],
663
- [
664
- // OnePlus
665
- / (kb2005|in20[12]5|be20[12][59])\b/i,
666
- /(?:one)?(?:plus)? (a\d0\d\d)(?: b|\))/i
667
- ],
668
- [i, [o, si], [e, w]],
669
- [
670
- // Amazon
671
- /(alexa)webm/i,
672
- /(kf[a-z]{2}wi|aeo(?!bc)\w\w)( bui|\))/i,
673
- // Kindle Fire without Silk / Echo Show
674
- /(kf[a-z]+)( bui|\)).+silk\//i
675
- // Kindle Fire HD
676
- ],
677
- [i, [o, ge], [e, g]],
678
- [
679
- /((?:sd|kf)[0349hijorstuw]+)( bui|\)).+silk\//i
680
- // Fire Phone
681
- ],
682
- [[i, /(.+)/g, "Fire Phone $1"], [o, ge], [e, w]],
683
- [
684
- // BlackBerry
685
- /(playbook);[-\w\),; ]+(rim)/i
686
- // BlackBerry PlayBook
687
- ],
688
- [i, o, [e, g]],
689
- [
690
- /\b((?:bb[a-f]|st[hv])100-\d)/i,
691
- /\(bb10; (\w+)/i
692
- // BlackBerry 10
693
- ],
694
- [i, [o, ti], [e, w]],
695
- [
696
- // Asus
697
- /(?:\b|asus_)(transfo[prime ]{4,10} \w+|eeepc|slider \w+|nexus 7|padfone|p00[cj])/i
698
- ],
699
- [i, [o, ii], [e, g]],
700
- [
701
- / (z[bes]6[027][012][km][ls]|zenfone \d\w?)\b/i
702
- ],
703
- [i, [o, ii], [e, w]],
704
- [
705
- // HTC
706
- /(nexus 9)/i
707
- // HTC Nexus 9
708
- ],
709
- [i, [o, "HTC"], [e, g]],
710
- [
711
- /(htc)[-;_ ]{1,2}([\w ]+(?=\)| bui)|\w+)/i,
712
- // HTC
713
- // ZTE
714
- /(zte)[- ]([\w ]+?)(?: bui|\/|\))/i,
715
- /(alcatel|geeksphone|nexian|panasonic(?!(?:;|\.))|sony(?!-bra))[-_ ]?([-\w]*)/i
716
- // Alcatel/GeeksPhone/Nexian/Panasonic/Sony
717
- ],
718
- [o, [i, /_/g, " "], [e, w]],
719
- [
720
- // TCL
721
- /tcl (xess p17aa)/i,
722
- /droid [\w\.]+; ((?:8[14]9[16]|9(?:0(?:48|60|8[01])|1(?:3[27]|66)|2(?:6[69]|9[56])|466))[gqswx])(_\w(\w|\w\w))?(\)| bui)/i
723
- ],
724
- [i, [o, "TCL"], [e, g]],
725
- [
726
- /droid [\w\.]+; (418(?:7d|8v)|5087z|5102l|61(?:02[dh]|25[adfh]|27[ai]|56[dh]|59k|65[ah])|a509dl|t(?:43(?:0w|1[adepqu])|50(?:6d|7[adju])|6(?:09dl|10k|12b|71[efho]|76[hjk])|7(?:66[ahju]|67[hw]|7[045][bh]|71[hk]|73o|76[ho]|79w|81[hks]?|82h|90[bhsy]|99b)|810[hs]))(_\w(\w|\w\w))?(\)| bui)/i
727
- ],
728
- [i, [o, "TCL"], [e, w]],
729
- [
730
- // itel
731
- /(itel) ((\w+))/i
732
- ],
733
- [[o, D], i, [e, V, { tablet: ["p10001l", "w7001"], "*": "mobile" }]],
734
- [
735
- // Acer
736
- /droid.+; ([ab][1-7]-?[0178a]\d\d?)/i
737
- ],
738
- [i, [o, "Acer"], [e, g]],
739
- [
740
- // Meizu
741
- /droid.+; (m[1-5] note) bui/i,
742
- /\bmz-([-\w]{2,})/i
743
- ],
744
- [i, [o, "Meizu"], [e, w]],
745
- [
746
- // Ulefone
747
- /; ((?:power )?armor(?:[\w ]{0,8}))(?: bui|\))/i
748
- ],
749
- [i, [o, "Ulefone"], [e, w]],
750
- [
751
- // Energizer
752
- /; (energy ?\w+)(?: bui|\))/i,
753
- /; energizer ([\w ]+)(?: bui|\))/i
754
- ],
755
- [i, [o, "Energizer"], [e, w]],
756
- [
757
- // Cat
758
- /; cat (b35);/i,
759
- /; (b15q?|s22 flip|s48c|s62 pro)(?: bui|\))/i
760
- ],
761
- [i, [o, "Cat"], [e, w]],
762
- [
763
- // Smartfren
764
- /((?:new )?andromax[\w- ]+)(?: bui|\))/i
765
- ],
766
- [i, [o, "Smartfren"], [e, w]],
767
- [
768
- // Nothing
769
- /droid.+; (a(?:015|06[35]|142p?))/i
770
- ],
771
- [i, [o, "Nothing"], [e, w]],
772
- [
773
- // Archos
774
- /; (x67 5g|tikeasy \w+|ac[1789]\d\w+)( b|\))/i,
775
- /archos ?(5|gamepad2?|([\w ]*[t1789]|hello) ?\d+[\w ]*)( b|\))/i
776
- ],
777
- [i, [o, "Archos"], [e, g]],
778
- [
779
- /archos ([\w ]+)( b|\))/i,
780
- /; (ac[3-6]\d\w{2,8})( b|\))/i
781
- ],
782
- [i, [o, "Archos"], [e, w]],
783
- [
784
- // MIXED
785
- /(imo) (tab \w+)/i,
786
- // IMO
787
- /(infinix) (x1101b?)/i
788
- // Infinix XPad
789
- ],
790
- [o, i, [e, g]],
791
- [
792
- /(blackberry|benq|palm(?=\-)|sonyericsson|acer|asus(?! zenw)|dell|jolla|meizu|motorola|polytron|infinix|tecno|micromax|advan)[-_ ]?([-\w]*)/i,
793
- // BlackBerry/BenQ/Palm/Sony-Ericsson/Acer/Asus/Dell/Meizu/Motorola/Polytron/Infinix/Tecno/Micromax/Advan
794
- /; (blu|hmd|imo|tcl)[_ ]([\w\+ ]+?)(?: bui|\)|; r)/i,
795
- // BLU/HMD/IMO/TCL
796
- /(hp) ([\w ]+\w)/i,
797
- // HP iPAQ
798
- /(microsoft); (lumia[\w ]+)/i,
799
- // Microsoft Lumia
800
- /(lenovo)[-_ ]?([-\w ]+?)(?: bui|\)|\/)/i,
801
- // Lenovo
802
- /(oppo) ?([\w ]+) bui/i
803
- // OPPO
804
- ],
805
- [o, i, [e, w]],
806
- [
807
- /(kobo)\s(ereader|touch)/i,
808
- // Kobo
809
- /(hp).+(touchpad(?!.+tablet)|tablet)/i,
810
- // HP TouchPad
811
- /(kindle)\/([\w\.]+)/i
812
- // Kindle
813
- ],
814
- [o, i, [e, g]],
815
- [
816
- /(surface duo)/i
817
- // Surface Duo
818
- ],
819
- [i, [o, Re], [e, g]],
820
- [
821
- /droid [\d\.]+; (fp\du?)(?: b|\))/i
822
- // Fairphone
823
- ],
824
- [i, [o, "Fairphone"], [e, w]],
825
- [
826
- /((?:tegranote|shield t(?!.+d tv))[\w- ]*?)(?: b|\))/i
827
- // Nvidia Tablets
828
- ],
829
- [i, [o, Ce], [e, g]],
830
- [
831
- /(sprint) (\w+)/i
832
- // Sprint Phones
833
- ],
834
- [o, i, [e, w]],
835
- [
836
- /(kin\.[onetw]{3})/i
837
- // Microsoft Kin
838
- ],
839
- [[i, /\./g, " "], [o, Re], [e, w]],
840
- [
841
- /droid.+; ([c6]+|et5[16]|mc[239][23]x?|vc8[03]x?)\)/i
842
- // Zebra
843
- ],
844
- [i, [o, Me], [e, g]],
845
- [
846
- /droid.+; (ec30|ps20|tc[2-8]\d[kx])\)/i
847
- ],
848
- [i, [o, Me], [e, w]],
849
- [
850
- ///////////////////
851
- // SMARTTVS
852
- ///////////////////
853
- /smart-tv.+(samsung)/i
854
- // Samsung
855
- ],
856
- [o, [e, k]],
857
- [
858
- /hbbtv.+maple;(\d+)/i
859
- ],
860
- [[i, /^/, "SmartTV"], [o, ne], [e, k]],
861
- [
862
- /tcast.+(lg)e?. ([-\w]+)/i
863
- // LG SmartTV
864
- ],
865
- [o, i, [e, k]],
866
- [
867
- /(nux; netcast.+smarttv|lg (netcast\.tv-201\d|android tv))/i
868
- ],
869
- [[o, ve], [e, k]],
870
- [
871
- /(apple) ?tv/i
872
- // Apple TV
873
- ],
874
- [o, [i, X + " TV"], [e, k]],
875
- [
876
- /crkey.*devicetype\/chromecast/i
877
- // Google Chromecast Third Generation
878
- ],
879
- [[i, H + " Third Generation"], [o, j], [e, k]],
880
- [
881
- /crkey.*devicetype\/([^/]*)/i
882
- // Google Chromecast with specific device type
883
- ],
884
- [[i, /^/, "Chromecast "], [o, j], [e, k]],
885
- [
886
- /fuchsia.*crkey/i
887
- // Google Chromecast Nest Hub
888
- ],
889
- [[i, H + " Nest Hub"], [o, j], [e, k]],
890
- [
891
- /crkey/i
892
- // Google Chromecast, Linux-based or unknown
893
- ],
894
- [[i, H], [o, j], [e, k]],
895
- [
896
- /(portaltv)/i
897
- // Facebook Portal TV
898
- ],
899
- [i, [o, De], [e, k]],
900
- [
901
- /droid.+aft(\w+)( bui|\))/i
902
- // Fire TV
903
- ],
904
- [i, [o, ge], [e, k]],
905
- [
906
- /(shield \w+ tv)/i
907
- // Nvidia Shield TV
908
- ],
909
- [i, [o, Ce], [e, k]],
910
- [
911
- /\(dtv[\);].+(aquos)/i,
912
- /(aquos-tv[\w ]+)\)/i
913
- // Sharp
914
- ],
915
- [i, [o, ni], [e, k]],
916
- [
917
- /(bravia[\w ]+)( bui|\))/i
918
- // Sony
919
- ],
920
- [i, [o, le], [e, k]],
921
- [
922
- /(mi(tv|box)-?\w+) bui/i
923
- // Xiaomi
924
- ],
925
- [i, [o, Te], [e, k]],
926
- [
927
- /Hbbtv.*(technisat) (.*);/i
928
- // TechniSAT
929
- ],
930
- [o, i, [e, k]],
931
- [
932
- /\b(roku)[\dx]*[\)\/]((?:dvp-)?[\d\.]*)/i,
933
- // Roku
934
- /hbbtv\/\d+\.\d+\.\d+ +\([\w\+ ]*; *([\w\d][^;]*);([^;]*)/i
935
- // HbbTV devices
936
- ],
937
- [[o, fe], [i, fe], [e, k]],
938
- [
939
- // SmartTV from Unidentified Vendors
940
- /droid.+; ([\w- ]+) (?:android tv|smart[- ]?tv)/i
941
- ],
942
- [i, [e, k]],
943
- [
944
- /\b(android tv|smart[- ]?tv|opera tv|tv; rv:)\b/i
945
- ],
946
- [[e, k]],
947
- [
948
- ///////////////////
949
- // CONSOLES
950
- ///////////////////
951
- /(ouya)/i,
952
- // Ouya
953
- /(nintendo) (\w+)/i
954
- // Nintendo
955
- ],
956
- [o, i, [e, be]],
957
- [
958
- /droid.+; (shield)( bui|\))/i
959
- // Nvidia Portable
960
- ],
961
- [i, [o, Ce], [e, be]],
962
- [
963
- /(playstation \w+)/i
964
- // Playstation
965
- ],
966
- [i, [o, le], [e, be]],
967
- [
968
- /\b(xbox(?: one)?(?!; xbox))[\); ]/i
969
- // Microsoft Xbox
970
- ],
971
- [i, [o, Re], [e, be]],
972
- [
973
- ///////////////////
974
- // WEARABLES
975
- ///////////////////
976
- /\b(sm-[lr]\d\d[0156][fnuw]?s?|gear live)\b/i
977
- // Samsung Galaxy Watch
978
- ],
979
- [i, [o, ne], [e, I]],
980
- [
981
- /((pebble))app/i,
982
- // Pebble
983
- /(asus|google|lg|oppo) ((pixel |zen)?watch[\w ]*)( bui|\))/i
984
- // Asus ZenWatch / LG Watch / Pixel Watch
985
- ],
986
- [o, i, [e, I]],
987
- [
988
- /(ow(?:19|20)?we?[1-3]{1,3})/i
989
- // Oppo Watch
990
- ],
991
- [i, [o, Ie], [e, I]],
992
- [
993
- /(watch)(?: ?os[,\/]|\d,\d\/)[\d\.]+/i
994
- // Apple Watch
995
- ],
996
- [i, [o, X], [e, I]],
997
- [
998
- /(opwwe\d{3})/i
999
- // OnePlus Watch
1000
- ],
1001
- [i, [o, si], [e, I]],
1002
- [
1003
- /(moto 360)/i
1004
- // Motorola 360
1005
- ],
1006
- [i, [o, Oe], [e, I]],
1007
- [
1008
- /(smartwatch 3)/i
1009
- // Sony SmartWatch
1010
- ],
1011
- [i, [o, le], [e, I]],
1012
- [
1013
- /(g watch r)/i
1014
- // LG G Watch R
1015
- ],
1016
- [i, [o, ve], [e, I]],
1017
- [
1018
- /droid.+; (wt63?0{2,3})\)/i
1019
- ],
1020
- [i, [o, Me], [e, I]],
1021
- [
1022
- ///////////////////
1023
- // XR
1024
- ///////////////////
1025
- /droid.+; (glass) \d/i
1026
- // Google Glass
1027
- ],
1028
- [i, [o, j], [e, Ae]],
1029
- [
1030
- /(pico) (4|neo3(?: link|pro)?)/i
1031
- // Pico
1032
- ],
1033
- [o, i, [e, Ae]],
1034
- [
1035
- /(quest( \d| pro)?s?).+vr/i
1036
- // Meta Quest
1037
- ],
1038
- [i, [o, De], [e, Ae]],
1039
- [
1040
- ///////////////////
1041
- // EMBEDDED
1042
- ///////////////////
1043
- /(tesla)(?: qtcarbrowser|\/[-\w\.]+)/i
1044
- // Tesla
1045
- ],
1046
- [o, [e, me]],
1047
- [
1048
- /(aeobc)\b/i
1049
- // Echo Dot
1050
- ],
1051
- [i, [o, ge], [e, me]],
1052
- [
1053
- /(homepod).+mac os/i
1054
- // Apple HomePod
1055
- ],
1056
- [i, [o, X], [e, me]],
1057
- [
1058
- /windows iot/i
1059
- ],
1060
- [[e, me]],
1061
- [
1062
- ////////////////////
1063
- // MIXED (GENERIC)
1064
- ///////////////////
1065
- /droid .+?; ([^;]+?)(?: bui|; wv\)|\) applew).+?(mobile|vr|\d) safari/i
1066
- ],
1067
- [i, [e, V, { mobile: "Mobile", xr: "VR", "*": g }]],
1068
- [
1069
- /\b((tablet|tab)[;\/]|focus\/\d(?!.+mobile))/i
1070
- // Unidentifiable Tablet
1071
- ],
1072
- [[e, g]],
1073
- [
1074
- /(phone|mobile(?:[;\/]| [ \w\/\.]*safari)|pda(?=.+windows ce))/i
1075
- // Unidentifiable Mobile
1076
- ],
1077
- [[e, w]],
1078
- [
1079
- /droid .+?; ([\w\. -]+)( bui|\))/i
1080
- // Generic Android Device
1081
- ],
1082
- [i, [o, "Generic"]]
1083
- ],
1084
- engine: [
1085
- [
1086
- /windows.+ edge\/([\w\.]+)/i
1087
- // EdgeHTML
1088
- ],
1089
- [a, [r, Bi + "HTML"]],
1090
- [
1091
- /(arkweb)\/([\w\.]+)/i
1092
- // ArkWeb
1093
- ],
1094
- [r, a],
1095
- [
1096
- /webkit\/537\.36.+chrome\/(?!27)([\w\.]+)/i
1097
- // Blink
1098
- ],
1099
- [a, [r, "Blink"]],
1100
- [
1101
- /(presto)\/([\w\.]+)/i,
1102
- // Presto
1103
- /(webkit|trident|netfront|netsurf|amaya|lynx|w3m|goanna|servo)\/([\w\.]+)/i,
1104
- // WebKit/Trident/NetFront/NetSurf/Amaya/Lynx/w3m/Goanna/Servo
1105
- /ekioh(flow)\/([\w\.]+)/i,
1106
- // Flow
1107
- /(khtml|tasman|links)[\/ ]\(?([\w\.]+)/i,
1108
- // KHTML/Tasman/Links
1109
- /(icab)[\/ ]([23]\.[\d\.]+)/i,
1110
- // iCab
1111
- /\b(libweb)/i
1112
- // LibWeb
1113
- ],
1114
- [r, a],
1115
- [
1116
- /ladybird\//i
1117
- ],
1118
- [[r, "LibWeb"]],
1119
- [
1120
- /rv\:([\w\.]{1,9})\b.+(gecko)/i
1121
- // Gecko
1122
- ],
1123
- [a, r]
1124
- ],
1125
- os: [
1126
- [
1127
- // Windows
1128
- /microsoft (windows) (vista|xp)/i
1129
- // Windows (iTunes)
1130
- ],
1131
- [r, a],
1132
- [
1133
- /(windows (?:phone(?: os)?|mobile|iot))[\/ ]?([\d\.\w ]*)/i
1134
- // Windows Phone
1135
- ],
1136
- [r, [a, V, ci]],
1137
- [
1138
- /windows nt 6\.2; (arm)/i,
1139
- // Windows RT
1140
- /windows[\/ ]([ntce\d\. ]+\w)(?!.+xbox)/i,
1141
- /(?:win(?=3|9|n)|win 9x )([nt\d\.]+)/i
1142
- ],
1143
- [[a, V, ci], [r, Ne]],
1144
- [
1145
- // iOS/macOS
1146
- /[adehimnop]{4,7}\b(?:.*os ([\w]+) like mac|; opera)/i,
1147
- // iOS
1148
- /(?:ios;fbsv\/|iphone.+ios[\/ ])([\d\.]+)/i,
1149
- /cfnetwork\/.+darwin/i
1150
- ],
1151
- [[a, /_/g, "."], [r, "iOS"]],
1152
- [
1153
- /(mac os x) ?([\w\. ]*)/i,
1154
- /(macintosh|mac_powerpc\b)(?!.+haiku)/i
1155
- // Mac OS
1156
- ],
1157
- [[r, "macOS"], [a, /_/g, "."]],
1158
- [
1159
- // Google Chromecast
1160
- /android ([\d\.]+).*crkey/i
1161
- // Google Chromecast, Android-based
1162
- ],
1163
- [a, [r, H + " Android"]],
1164
- [
1165
- /fuchsia.*crkey\/([\d\.]+)/i
1166
- // Google Chromecast, Fuchsia-based
1167
- ],
1168
- [a, [r, H + " Fuchsia"]],
1169
- [
1170
- /crkey\/([\d\.]+).*devicetype\/smartspeaker/i
1171
- // Google Chromecast, Linux-based Smart Speaker
1172
- ],
1173
- [a, [r, H + " SmartSpeaker"]],
1174
- [
1175
- /linux.*crkey\/([\d\.]+)/i
1176
- // Google Chromecast, Legacy Linux-based
1177
- ],
1178
- [a, [r, H + " Linux"]],
1179
- [
1180
- /crkey\/([\d\.]+)/i
1181
- // Google Chromecast, unknown
1182
- ],
1183
- [a, [r, H]],
1184
- [
1185
- // Mobile OSes
1186
- /droid ([\w\.]+)\b.+(android[- ]x86|harmonyos)/i
1187
- // Android-x86/HarmonyOS
1188
- ],
1189
- [a, r],
1190
- [
1191
- /(ubuntu) ([\w\.]+) like android/i
1192
- // Ubuntu Touch
1193
- ],
1194
- [[r, /(.+)/, "$1 Touch"], a],
1195
- [
1196
- // Android/Blackberry/WebOS/QNX/Bada/RIM/KaiOS/Maemo/MeeGo/S40/Sailfish OS/OpenHarmony/Tizen
1197
- /(android|bada|blackberry|kaios|maemo|meego|openharmony|qnx|rim tablet os|sailfish|series40|symbian|tizen|webos)\w*[-\/\.; ]?([\d\.]*)/i
1198
- ],
1199
- [r, a],
1200
- [
1201
- /\(bb(10);/i
1202
- // BlackBerry 10
1203
- ],
1204
- [a, [r, ti]],
1205
- [
1206
- /(?:symbian ?os|symbos|s60(?=;)|series ?60)[-\/ ]?([\w\.]*)/i
1207
- // Symbian
1208
- ],
1209
- [a, [r, "Symbian"]],
1210
- [
1211
- /mozilla\/[\d\.]+ \((?:mobile|tablet|tv|mobile; [\w ]+); rv:.+ gecko\/([\w\.]+)/i
1212
- // Firefox OS
1213
- ],
1214
- [a, [r, de + " OS"]],
1215
- [
1216
- /web0s;.+rt(tv)/i,
1217
- /\b(?:hp)?wos(?:browser)?\/([\w\.]+)/i
1218
- // WebOS
1219
- ],
1220
- [a, [r, "webOS"]],
1221
- [
1222
- /watch(?: ?os[,\/]|\d,\d\/)([\d\.]+)/i
1223
- // watchOS
1224
- ],
1225
- [a, [r, "watchOS"]],
1226
- [
1227
- // Google ChromeOS
1228
- /(cros) [\w]+(?:\)| ([\w\.]+)\b)/i
1229
- // Chromium OS
1230
- ],
1231
- [[r, "Chrome OS"], a],
1232
- [
1233
- // Smart TVs
1234
- /panasonic;(viera)/i,
1235
- // Panasonic Viera
1236
- /(netrange)mmh/i,
1237
- // Netrange
1238
- /(nettv)\/(\d+\.[\w\.]+)/i,
1239
- // NetTV
1240
- // Console
1241
- /(nintendo|playstation) (\w+)/i,
1242
- // Nintendo/Playstation
1243
- /(xbox); +xbox ([^\);]+)/i,
1244
- // Microsoft Xbox (360, One, X, S, Series X, Series S)
1245
- /(pico) .+os([\w\.]+)/i,
1246
- // Pico
1247
- // Other
1248
- /\b(joli|palm)\b ?(?:os)?\/?([\w\.]*)/i,
1249
- // Joli/Palm
1250
- /(mint)[\/\(\) ]?(\w*)/i,
1251
- // Mint
1252
- /(mageia|vectorlinux)[; ]/i,
1253
- // Mageia/VectorLinux
1254
- /([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,
1255
- // Ubuntu/Debian/SUSE/Gentoo/Arch/Slackware/Fedora/Mandriva/CentOS/PCLinuxOS/RedHat/Zenwalk/Linpus/Raspbian/Plan9/Minix/RISCOS/Contiki/Deepin/Manjaro/elementary/Sabayon/Linspire
1256
- /(hurd|linux)(?: arm\w*| x86\w*| ?)([\w\.]*)/i,
1257
- // Hurd/Linux
1258
- /(gnu) ?([\w\.]*)/i,
1259
- // GNU
1260
- /\b([-frentopcghs]{0,5}bsd|dragonfly)[\/ ]?(?!amd|[ix346]{1,2}86)([\w\.]*)/i,
1261
- // FreeBSD/NetBSD/OpenBSD/PC-BSD/GhostBSD/DragonFly
1262
- /(haiku) (\w+)/i
1263
- // Haiku
1264
- ],
1265
- [r, a],
1266
- [
1267
- /(sunos) ?([\w\.\d]*)/i
1268
- // Solaris
1269
- ],
1270
- [[r, "Solaris"], a],
1271
- [
1272
- /((?:open)?solaris)[-\/ ]?([\w\.]*)/i,
1273
- // Solaris
1274
- /(aix) ((\d)(?=\.|\)| )[\w\.])*/i,
1275
- // AIX
1276
- /\b(beos|os\/2|amigaos|morphos|openvms|fuchsia|hp-ux|serenityos)/i,
1277
- // BeOS/OS2/AmigaOS/MorphOS/OpenVMS/Fuchsia/HP-UX/SerenityOS
1278
- /(unix) ?([\w\.]*)/i
1279
- // UNIX
1280
- ],
1281
- [r, a]
1282
- ]
1283
- }, ye = function() {
1284
- var t = { init: {}, isIgnore: {}, isIgnoreRgx: {}, toString: {} };
1285
- return L.call(t.init, [
1286
- [E, [r, a, pe, e]],
1287
- [M, [A]],
1288
- [T, [e, i, o]],
1289
- [C, [r, a]],
1290
- [O, [r, a]]
1291
- ]), L.call(t.isIgnore, [
1292
- [E, [a, pe]],
1293
- [C, [a]],
1294
- [O, [a]]
1295
- ]), L.call(t.isIgnoreRgx, [
1296
- [E, / ?browser$/i],
1297
- [O, / ?os$/i]
1298
- ]), L.call(t.toString, [
1299
- [E, [r, a]],
1300
- [M, [A]],
1301
- [T, [o, i]],
1302
- [C, [r, a]],
1303
- [O, [r, a]]
1304
- ]), t;
1305
- }(), Gi = function(t, n) {
1306
- var s = ye.init[n], m = ye.isIgnore[n] || 0, l = ye.isIgnoreRgx[n] || 0, p = ye.toString[n] || 0;
1307
- function u() {
1308
- L.call(this, s);
1309
- }
1310
- return u.prototype.getItem = function() {
1311
- return t;
1312
- }, u.prototype.withClientHints = function() {
1313
- return F ? F.getHighEntropyValues(hi).then(function(c) {
1314
- return t.setCH(new gi(c, !1)).parseCH().get();
1315
- }) : t.parseCH().get();
1316
- }, u.prototype.withFeatureCheck = function() {
1317
- return t.detectFeature().get();
1318
- }, n != Z && (u.prototype.is = function(c) {
1319
- var d = !1;
1320
- for (var y in this)
1321
- if (this.hasOwnProperty(y) && !Be(m, y) && D(l ? oe(l, this[y]) : this[y]) == D(l ? oe(l, c) : c)) {
1322
- if (d = !0, c != N) break;
1323
- } else if (c == N && d) {
1324
- d = !d;
1325
- break;
1326
- }
1327
- return d;
1328
- }, u.prototype.toString = function() {
1329
- var c = ie;
1330
- for (var d in p)
1331
- typeof this[p[d]] !== N && (c += (c ? " " : ie) + this[p[d]]);
1332
- return c || N;
1333
- }), F || (u.prototype.then = function(c) {
1334
- var d = this, y = function() {
1335
- for (var S in d)
1336
- d.hasOwnProperty(S) && (this[S] = d[S]);
1337
- };
1338
- y.prototype = {
1339
- is: u.prototype.is,
1340
- toString: u.prototype.toString
1341
- };
1342
- var v = new y();
1343
- return c(v), v;
1344
- }), new u();
1345
- };
1346
- function gi(t, n) {
1347
- if (t = t || {}, L.call(this, hi), n)
1348
- L.call(this, [
1349
- [Ge, Le(t[B])],
1350
- [Ye, Le(t[Ui])],
1351
- [w, /\?1/.test(t[Fi])],
1352
- [i, we(t[Vi])],
1353
- [ee, we(t[fi])],
1354
- [je, we(t[Ni])],
1355
- [A, we(t[Hi])],
1356
- [W, Le(t[Pi])],
1357
- [Se, we(t[qi])]
1358
- ]);
1359
- else
1360
- for (var s in t)
1361
- this.hasOwnProperty(s) && typeof t[s] !== N && (this[s] = t[s]);
1362
- }
1363
- function mi(t, n, s, m) {
1364
- return this.get = function(l) {
1365
- return l ? this.data.hasOwnProperty(l) ? this.data[l] : void 0 : this.data;
1366
- }, this.set = function(l, p) {
1367
- return this.data[l] = p, this;
1368
- }, this.setCH = function(l) {
1369
- return this.uaCH = l, this;
1370
- }, this.detectFeature = function() {
1371
- if (R && R.userAgent == this.ua)
1372
- switch (this.itemType) {
1373
- case E:
1374
- R.brave && typeof R.brave.isBrave == ke && this.set(r, "Brave");
1375
- break;
1376
- case T:
1377
- !this.get(e) && F && F[w] && this.set(e, w), this.get(i) == "Macintosh" && R && typeof R.standalone !== N && R.maxTouchPoints && R.maxTouchPoints > 2 && this.set(i, "iPad").set(e, g);
1378
- break;
1379
- case O:
1380
- !this.get(r) && F && F[ee] && this.set(r, F[ee]);
1381
- break;
1382
- case Z:
1383
- var l = this.data, p = function(u) {
1384
- return l[u].getItem().detectFeature().get();
1385
- };
1386
- this.set(E, p(E)).set(M, p(M)).set(T, p(T)).set(C, p(C)).set(O, p(O));
1387
- }
1388
- return this;
1389
- }, this.parseUA = function() {
1390
- return this.itemType != Z && He.call(this.data, this.ua, this.rgxMap), this.itemType == E && this.set(pe, Ue(this.get(a))), this;
1391
- }, this.parseCH = function() {
1392
- var l = this.uaCH, p = this.rgxMap;
1393
- switch (this.itemType) {
1394
- case E:
1395
- case C:
1396
- var u = l[Ye] || l[Ge], c;
1397
- if (u)
1398
- for (var d in u) {
1399
- var y = u[d].brand || u[d], v = u[d].version;
1400
- this.itemType == E && !/not.a.brand/i.test(y) && (!c || /chrom/i.test(c) && y != di) && (y = V(y, {
1401
- Chrome: "Google Chrome",
1402
- Edge: "Microsoft Edge",
1403
- "Chrome WebView": "Android WebView",
1404
- "Chrome Headless": "HeadlessChrome",
1405
- "Huawei Browser": "HuaweiBrowser",
1406
- "MIUI Browser": "Miui Browser",
1407
- "Opera Mobi": "OperaMobile",
1408
- Yandex: "YaBrowser"
1409
- }), this.set(r, y).set(a, v).set(pe, Ue(v)), c = y), this.itemType == C && y == di && this.set(a, v);
1410
- }
1411
- break;
1412
- case M:
1413
- var S = l[A];
1414
- S && (S && l[Se] == "64" && (S += "64"), He.call(this.data, S + ";", p));
1415
- break;
1416
- case T:
1417
- if (l[w] && this.set(e, w), l[i] && (this.set(i, l[i]), !this.get(e) || !this.get(o))) {
1418
- var z = {};
1419
- He.call(z, "droid 9; " + l[i] + ")", p), !this.get(e) && z.type && this.set(e, z.type), !this.get(o) && z.vendor && this.set(o, z.vendor);
1420
- }
1421
- if (l[W]) {
1422
- var b;
1423
- if (typeof l[W] != "string")
1424
- for (var f = 0; !b && f < l[W].length; )
1425
- b = V(l[W][f++], wi);
1426
- else
1427
- b = V(l[W], wi);
1428
- this.set(e, b);
1429
- }
1430
- break;
1431
- case O:
1432
- var $ = l[ee];
1433
- if ($) {
1434
- var _ = l[je];
1435
- $ == Ne && (_ = parseInt(Ue(_), 10) >= 13 ? "11" : "10"), this.set(r, $).set(a, _);
1436
- }
1437
- this.get(r) == Ne && l[i] == "Xbox" && this.set(r, "Xbox").set(a, void 0);
1438
- break;
1439
- case Z:
1440
- var vi = this.data, ae = function(yi) {
1441
- return vi[yi].getItem().setCH(l).parseCH().get();
1442
- };
1443
- this.set(E, ae(E)).set(M, ae(M)).set(T, ae(T)).set(C, ae(C)).set(O, ae(O));
1444
- }
1445
- return this;
1446
- }, L.call(this, [
1447
- ["itemType", t],
1448
- ["ua", n],
1449
- ["uaCH", m],
1450
- ["rgxMap", s],
1451
- ["data", Gi(this, t)]
1452
- ]), this;
1453
- }
1454
- function U(t, n, s) {
1455
- if (typeof t === te ? (_e(t, !0) ? (typeof n === te && (s = n), n = t) : (s = t, n = void 0), t = void 0) : typeof t === Ve && !_e(n, !0) && (s = n, n = void 0), s && typeof s.append === ke) {
1456
- var m = {};
1457
- s.forEach(function(d, y) {
1458
- m[y] = d;
1459
- }), s = m;
1460
- }
1461
- if (!(this instanceof U))
1462
- return new U(t, n, s).getResult();
1463
- var l = typeof t === Ve ? t : (
1464
- // Passed user-agent string
1465
- s && s[Ze] ? s[Ze] : (
1466
- // User-Agent from passed headers
1467
- R && R.userAgent ? R.userAgent : (
1468
- // navigator.userAgent
1469
- ie
1470
- )
1471
- )
1472
- ), p = new gi(s, !0), u = n ? $i(bi, n) : bi, c = function(d) {
1473
- return d == Z ? function() {
1474
- return new mi(d, l, u, p).set("ua", l).set(E, this.getBrowser()).set(M, this.getCPU()).set(T, this.getDevice()).set(C, this.getEngine()).set(O, this.getOS()).get();
1475
- } : function() {
1476
- return new mi(d, l, u[d], p).parseUA().get();
1477
- };
1478
- };
1479
- return L.call(this, [
1480
- ["getBrowser", c(E)],
1481
- ["getCPU", c(M)],
1482
- ["getDevice", c(T)],
1483
- ["getEngine", c(C)],
1484
- ["getOS", c(O)],
1485
- ["getResult", c(Z)],
1486
- ["getUA", function() {
1487
- return l;
1488
- }],
1489
- ["setUA", function(d) {
1490
- return re(d) && (l = d.length > Fe ? fe(d, Fe) : d), this;
1491
- }]
1492
- ]).setUA(l), this;
1493
- }
1494
- U.VERSION = Li;
1495
- U.BROWSER = Ee([r, a, pe, e]);
1496
- U.CPU = Ee([A]);
1497
- U.DEVICE = Ee([i, o, e, be, w, k, g, I, me]);
1498
- U.ENGINE = U.OS = Ee([r, a]);
1499
- const Yi = { class: "space-y-16" }, ji = { class: "fm-typo-en-body-md-400 text-fm-color-typo-secondary" }, Wi = { class: "fm-typo-en-body-md-600" }, Xi = { class: "mt-48" }, Ki = { class: "space-y-16" }, Ji = { class: "fm-typo-en-body-md-400 text-fm-color-typo-secondary" }, Qi = {
1500
- key: 0,
1501
- class: "fm-typo-en-body-md-600"
1502
- }, Zi = {
1503
- key: 1,
1504
- class: "fm-typo-en-body-md-600"
1505
- }, et = { class: "mt-48" }, it = { class: "space-y-16" }, tt = { class: "fm-typo-en-body-md-600" }, ot = { class: "fm-typo-en-body-md-600" }, rt = /* @__PURE__ */ ze({
1506
- __name: "AuditLogDetailSheet",
1507
- props: {
1508
- auditLog: {
1509
- type: Object,
1510
- required: !0
1511
- }
1512
- },
1513
- setup(t, { expose: n }) {
1514
- const s = xe(!0), m = [
1515
- {
1516
- label: "ID",
1517
- key: "_id"
1518
- },
1519
- {
1520
- label: "Module Type",
1521
- getter: (c) => c.moduleType ? Pe.title(c.moduleType) : "-"
1522
- },
1523
- {
1524
- label: "User ID",
1525
- key: "user"
1526
- },
1527
- {
1528
- label: "User Name",
1529
- key: "userName"
1530
- },
1531
- {
1532
- label: "User Phone No.",
1533
- key: "userPhoneNumber"
1534
- },
1535
- {
1536
- label: "Client IP",
1537
- key: "clientIp"
1538
- },
1539
- {
1540
- label: "Timestamp",
1541
- getter: (c) => c.timestamp ? J(c.timestamp).format("D MMM YYYY, hh:mmA") : "-"
1542
- }
1543
- ], l = [
1544
- {
1545
- label: "Request Method",
1546
- key: "httpMethod"
1547
- },
1548
- {
1549
- label: "Request URL",
1550
- getter: (c) => `${c.request.host}${c.request.url}`
1551
- },
1552
- {
1553
- label: "User Agent",
1554
- getter: (c) => U(c.request.userAgent),
1555
- isJson: !0
1556
- },
1557
- {
1558
- label: "Request Params",
1559
- getter: (c) => c.request.params || "-",
1560
- isJson: !0
1561
- },
1562
- {
1563
- label: "Request Query",
1564
- getter: (c) => c.request.query || "-",
1565
- isJson: !0
1566
- },
1567
- {
1568
- label: "Request Body",
1569
- getter: (c) => c.request.body || "-",
1570
- isJson: !0
1571
- }
1572
- ];
1573
- function p() {
1574
- s.value = !0;
1575
- }
1576
- function u() {
1577
- s.value = !1;
1578
- }
1579
- return n({
1580
- showSheet: p,
1581
- hideSheet: u
1582
- }), (c, d) => {
1583
- const y = $e("FmSideSheet");
1584
- return P(), pi(y, {
1585
- modelValue: h(s),
1586
- "onUpdate:modelValue": d[0] || (d[0] = (v) => xi(s) ? s.value = v : null),
1587
- header: "Audit Log Detail",
1588
- "dismiss-away": "",
1589
- "close-button": !0,
1590
- "max-width": 650
1591
- }, {
1592
- "side-sheet-footer": We(() => d[6] || (d[6] = [])),
1593
- default: We(() => [
1594
- x("div", null, [
1595
- d[1] || (d[1] = x("div", { class: "fm-typo-en-title-sm-800 my-24" }, "Log Information", -1)),
1596
- x("div", Yi, [
1597
- (P(), Q(qe, null, Xe(m, (v, S) => x("div", { key: S }, [
1598
- x("div", ji, G(v.label), 1),
1599
- x("div", Wi, G((v.key ? t.auditLog[v.key] : v.getter(t.auditLog)) || "-"), 1)
1600
- ])), 64))
1601
- ])
1602
- ]),
1603
- x("div", Xi, [
1604
- d[2] || (d[2] = x("div", { class: "fm-typo-en-title-sm-800 mb-24" }, "Request Detail", -1)),
1605
- x("div", Ki, [
1606
- (P(), Q(qe, null, Xe(l, (v, S) => x("div", { key: S }, [
1607
- x("div", Ji, G(v.label), 1),
1608
- v.isJson ? (P(), Q("pre", Zi, G(v.key ? t.auditLog.request[v.key] : v.getter(t.auditLog) || "-"), 1)) : (P(), Q("div", Qi, G(v.key ? t.auditLog.request[v.key] : v.getter(t.auditLog) || "-"), 1))
1609
- ])), 64))
1610
- ])
1611
- ]),
1612
- x("div", et, [
1613
- d[5] || (d[5] = x("div", { class: "fm-typo-en-title-sm-800 mb-24" }, "Response Detail", -1)),
1614
- x("div", it, [
1615
- x("div", null, [
1616
- d[3] || (d[3] = x("div", { class: "fm-typo-en-body-md-400 text-fm-color-typo-secondary" }, " Status Code ", -1)),
1617
- x("div", tt, G(t.auditLog.response.statusCode || "-"), 1)
1618
- ]),
1619
- x("div", null, [
1620
- d[4] || (d[4] = x("div", { class: "fm-typo-en-body-md-400 text-fm-color-typo-secondary" }, " Response Body ", -1)),
1621
- x("pre", ot, G(t.auditLog.response.body || "-"), 1)
1622
- ])
1623
- ])
1624
- ])
1625
- ]),
1626
- _: 1
1627
- }, 8, ["modelValue"]);
1628
- };
1629
- }
1630
- }), at = () => {
1631
- const t = Ii.getBusinessId();
1632
- if (!t) throw new Error("Invalid business ID");
1633
- return Ti(`businesses/${t}/audit-logs`, {
1634
- noIdRequired: !0
1635
- });
1636
- }, st = {
1637
- async readAll(t, n) {
1638
- const s = Ci(
1639
- await at().get("", {
1640
- params: { ...t, ...n }
1641
- })
1642
- );
1643
- return {
1644
- meta: s.meta,
1645
- resources: s.resources
1646
- };
1647
- }
1648
- }, nt = { class: "hidden xs:flex items-center justify-end" }, lt = { class: "flex items-center justify-between" }, dt = { class: "flex gap-8 items-center w-full overflow-x-scroll" }, ut = /* @__PURE__ */ ze({
1649
- __name: "AuditLogsTable",
1650
- setup(t) {
1651
- const n = xe(), s = xe(), m = [
1652
- {
1653
- header: "Audit Log ID",
1654
- accessorKey: "_id",
1655
- meta: {
1656
- maxWidth: "100px"
1657
- },
1658
- cell(b) {
1659
- return Y("div", { class: "flex items-center" }, [
1660
- Y(Ke.FmIcon, {
1661
- name: "content_copy",
1662
- outline: !0,
1663
- size: "sm",
1664
- class: "cursor-pointer mr-4",
1665
- onClick: (f) => {
1666
- f.preventDefault(), f.stopPropagation(), Qe(b.row.original._id.toString());
1667
- }
1668
- }),
1669
- Y(
1670
- "div",
1671
- { class: "pr-2 text-ellipsis overflow-hidden" },
1672
- b.row.original._id.toString()
1673
- )
1674
- ]);
1675
- },
1676
- enableSorting: !1
1677
- },
1678
- {
1679
- header: "Timestamp",
1680
- accessorKey: "timestamp",
1681
- accessorFn: (b) => J(Mi(b._id.toString())).format("D MMM YYYY, hh:mmA"),
1682
- enableSorting: !0
1683
- },
1684
- {
1685
- header: "Status",
1686
- accessorKey: "response.statusCode",
1687
- enableSorting: !1
1688
- },
1689
- {
1690
- header: "Module Type",
1691
- accessorKey: "moduleType",
1692
- accessorFn: (b) => b.moduleType ? Pe.title(b.moduleType) : "-",
1693
- enableSorting: !1
1694
- },
1695
- {
1696
- header: "User ID",
1697
- accessorKey: "user",
1698
- cell(b) {
1699
- return Y("div", { class: "flex items-center" }, [
1700
- Y(Ke.FmIcon, {
1701
- name: "content_copy",
1702
- outline: !0,
1703
- size: "sm",
1704
- class: "cursor-pointer mr-4",
1705
- onClick: (f) => {
1706
- f.preventDefault(), f.stopPropagation(), Qe(b.row.original.user);
1707
- }
1708
- }),
1709
- Y(
1710
- "div",
1711
- { class: "pr-2 text-ellipsis overflow-hidden" },
1712
- b.row.original.user
1713
- )
1714
- ]);
1715
- },
1716
- enableSorting: !1
1717
- },
1718
- {
1719
- header: "User Name",
1720
- accessorKey: "userName",
1721
- enableSorting: !1
1722
- },
1723
- {
1724
- header: "User Phone No.",
1725
- accessorFn: (b) => b.userPhoneNumber || "-",
1726
- enableSorting: !1
1727
- },
1728
- {
1729
- header: "Request URL",
1730
- meta: {
1731
- maxWidth: "400px"
1732
- },
1733
- cell(b) {
1734
- return Y(
1735
- "div",
1736
- { class: "break-words whitespace-normal" },
1737
- `${b.row.original.request.host}${b.row.original.request.url}`
1738
- );
1739
- },
1740
- accessorFn: (b) => `${b.request.host}${b.request.url}`,
1741
- enableSorting: !1
1742
- },
1743
- {
1744
- header: "Request Method",
1745
- accessorKey: "request.httpMethod",
1746
- enableSorting: !1
1747
- },
1748
- {
1749
- header: "Client IP",
1750
- accessorFn: (b) => b.clientIp || "-",
1751
- enableSorting: !1
1752
- }
1753
- ], l = xe({
1754
- search: "",
1755
- dateRange: {
1756
- startDate: J().subtract(7, "day").toISOString(),
1757
- endDate: J().endOf("day").toISOString()
1758
- },
1759
- httpMethod: [],
1760
- moduleType: []
1761
- }), { tableMeta: p, rowData: u, onSort: c, debouncedFetchData: d, onSearch: y } = Ai(async (b) => {
1762
- const f = {
1763
- ...l.value,
1764
- dateRange: {
1765
- start: new Date(l.value.dateRange.startDate).toISOString(),
1766
- end: new Date(l.value.dateRange.endDate).toISOString()
1767
- }
1768
- };
1769
- return await st.readAll(b, f);
1770
- }), v = [
1771
- he.enum.POST,
1772
- he.enum.PUT,
1773
- he.enum.PATCH,
1774
- he.enum.DELETE
1775
- ].map((b) => ({ label: b, value: b })), S = Oi.options.map((b) => ({ label: Pe.title(b), value: b })).sort((b, f) => b.label.localeCompare(f.label));
1776
- ki(
1777
- l,
1778
- () => {
1779
- d();
1780
- },
1781
- { deep: !0 }
1782
- );
1783
- function z(b) {
1784
- var f;
1785
- s.value = b.original, (f = n == null ? void 0 : n.value) == null || f.showSheet();
1786
- }
1787
- return _i(async () => {
1788
- await d();
1789
- }), (b, f) => {
1790
- const $ = $e("FmSearch");
1791
- return P(), Q("div", null, [
1792
- x("div", nt, [
1793
- q($, {
1794
- class: "hidden xs:flex",
1795
- modelValue: h(l).search,
1796
- "onUpdate:modelValue": f[0] || (f[0] = (_) => h(l).search = _),
1797
- placeholder: "Search",
1798
- collapsible: ""
1799
- }, null, 8, ["modelValue"])
1800
- ]),
1801
- x("div", lt, [
1802
- x("div", dt, [
1803
- q(Je, {
1804
- class: "cursor-pointer text-fm-color-neutral-gray-400",
1805
- "right-icon": "keyboard_arrow_down",
1806
- modelValue: h(l).moduleType,
1807
- "onUpdate:modelValue": f[1] || (f[1] = (_) => h(l).moduleType = _),
1808
- label: "Module Type: ",
1809
- "show-item-label": !0,
1810
- items: h(S)
1811
- }, null, 8, ["modelValue", "items"]),
1812
- q(Je, {
1813
- class: "cursor-pointer text-fm-color-neutral-gray-400",
1814
- "right-icon": "keyboard_arrow_down",
1815
- modelValue: h(l).httpMethod,
1816
- "onUpdate:modelValue": f[2] || (f[2] = (_) => h(l).httpMethod = _),
1817
- label: "Request Method: ",
1818
- "show-item-label": !0,
1819
- items: h(v)
1820
- }, null, 8, ["modelValue", "items"]),
1821
- q(Ei, {
1822
- "model-value": {
1823
- startDate: h(l).dateRange.startDate,
1824
- endDate: h(l).dateRange.endDate
1825
- },
1826
- "onUpdate:modelValue": f[3] || (f[3] = (_) => h(l).dateRange = {
1827
- startDate: h(J)(_.startDate).startOf("d").toISOString(),
1828
- endDate: h(J)(_.endDate).endOf("d").toISOString()
1829
- })
1830
- }, null, 8, ["model-value"])
1831
- ]),
1832
- q($, {
1833
- class: "xs:hidden",
1834
- modelValue: h(l).search,
1835
- "onUpdate:modelValue": [
1836
- f[4] || (f[4] = (_) => h(l).search = _),
1837
- h(y)
1838
- ],
1839
- placeholder: "Search",
1840
- collapsible: ""
1841
- }, null, 8, ["modelValue", "onUpdate:modelValue"])
1842
- ]),
1843
- q(Ri, {
1844
- loading: h(p).isLoading,
1845
- "row-data": h(u),
1846
- "row-count": h(p).totalRows,
1847
- "column-defs": m,
1848
- "page-count": h(p).pageCount,
1849
- "page-index": h(p).pageIndex,
1850
- "page-size": h(p).pageSize,
1851
- "shrink-at": !1,
1852
- onSortChange: h(c),
1853
- onPageChange: f[5] || (f[5] = (_) => h(d)({
1854
- pageSize: _.pageSize,
1855
- pageIndex: _.pageIndex
1856
- })),
1857
- onRowClick: z
1858
- }, null, 8, ["loading", "row-data", "row-count", "page-count", "page-index", "page-size", "onSortChange"]),
1859
- h(s) ? (P(), pi(rt, {
1860
- key: 0,
1861
- ref_key: "sheetRef",
1862
- ref: n,
1863
- auditLog: h(s)
1864
- }, null, 8, ["auditLog"])) : Si("", !0)
1865
- ]);
1866
- };
1867
- }
1868
- }), ct = { class: "px-24 flex flex-col gap-y-32 pb-24" }, Ot = /* @__PURE__ */ ze({
1869
- __name: "AuditLogs",
1870
- setup(t) {
1871
- const { t: n } = Di();
1872
- return (s, m) => {
1873
- const l = $e("FmPageHead");
1874
- return P(), Q(qe, null, [
1875
- q(l, {
1876
- title: h(n)("connect.auditLogs.title")
1877
- }, null, 8, ["title"]),
1878
- x("div", ct, [
1879
- q(ut)
1880
- ])
1881
- ], 64);
1882
- };
1883
- }
1884
- });
1885
- export {
1886
- Ot as default
1887
- };