@kalamba/sdk 0.26.0 → 0.27.0
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/index.cjs +1 -1
- package/dist/index.d.ts +6 -38
- package/dist/index.js +103 -197
- package/dist/plugins.cjs +1 -1
- package/dist/plugins.d.ts +0 -2
- package/dist/plugins.js +792 -733
- package/dist/{v4-BfzDHJEo.js → v4-85TkMtXc.js} +19 -18
- package/dist/v4-Cj9BnqmU.cjs +5 -0
- package/dist/wrapper.cjs +1 -1
- package/dist/wrapper.d.ts +0 -2
- package/dist/wrapper.js +2 -3
- package/package.json +3 -4
- package/dist/v4-CoqWKwnX.cjs +0 -5
package/dist/plugins.js
CHANGED
|
@@ -2,33 +2,33 @@
|
|
|
2
2
|
* BSD 3-Clause License
|
|
3
3
|
* Copyright (c) 2025, Kalamba Games Limited
|
|
4
4
|
*/
|
|
5
|
-
var
|
|
6
|
-
var
|
|
5
|
+
var ns = Object.defineProperty;
|
|
6
|
+
var bt = (i) => {
|
|
7
7
|
throw TypeError(i);
|
|
8
8
|
};
|
|
9
|
-
var
|
|
10
|
-
var b = (i, t, e) =>
|
|
11
|
-
var k = (i, t, e) => (
|
|
12
|
-
import { a as
|
|
13
|
-
import { d as
|
|
14
|
-
import { r as
|
|
9
|
+
var os = (i, t, e) => t in i ? ns(i, t, { enumerable: !0, configurable: !0, writable: !0, value: e }) : i[t] = e;
|
|
10
|
+
var b = (i, t, e) => os(i, typeof t != "symbol" ? t + "" : t, e), ft = (i, t, e) => t.has(i) || bt("Cannot " + e);
|
|
11
|
+
var k = (i, t, e) => (ft(i, t, "read from private field"), e ? e.call(i) : t.get(i)), M = (i, t, e) => t.has(i) ? bt("Cannot add the same private member more than once") : t instanceof WeakSet ? t.add(i) : t.set(i, e), v = (i, t, e, s) => (ft(i, t, "write to private field"), s ? s.call(i, e) : t.set(i, e), e);
|
|
12
|
+
import { a as se } from "./errors-NnLrKjTz.js";
|
|
13
|
+
import { d as yt, e as rs } from "./encoders-BDr7fjKQ.js";
|
|
14
|
+
import { r as cs, g as ds, v as ls } from "./v4-85TkMtXc.js";
|
|
15
15
|
function P(i, t) {
|
|
16
16
|
return (e, ...s) => {
|
|
17
17
|
console.log(`[%c${i}\x1B[m] %s`, t, e, ...s);
|
|
18
18
|
};
|
|
19
19
|
}
|
|
20
|
-
function
|
|
20
|
+
function $t(i, t) {
|
|
21
21
|
return Math.round(i * 100 / t);
|
|
22
22
|
}
|
|
23
|
-
class
|
|
23
|
+
class _ {
|
|
24
24
|
constructor(t, e) {
|
|
25
25
|
b(this, "config");
|
|
26
26
|
b(this, "sdkConfig");
|
|
27
27
|
this.config = t, this.sdkConfig = e;
|
|
28
28
|
}
|
|
29
29
|
on(t, e, s) {
|
|
30
|
-
const a = function(
|
|
31
|
-
|
|
30
|
+
const a = function(o) {
|
|
31
|
+
o.data.message !== `kalamba:wrapper-casino:${t}` && o.data.message !== `kalamba:wrapper:${t}` || e(o.data.payload);
|
|
32
32
|
};
|
|
33
33
|
window.addEventListener("message", a, s);
|
|
34
34
|
}
|
|
@@ -39,10 +39,10 @@ class B {
|
|
|
39
39
|
});
|
|
40
40
|
}
|
|
41
41
|
}
|
|
42
|
-
const
|
|
43
|
-
class
|
|
42
|
+
const us = P("BasicPlugin", "color:#000000;font-weight:bold;");
|
|
43
|
+
class Js extends _ {
|
|
44
44
|
constructor(...t) {
|
|
45
|
-
super(...t), this.registerToSdkEvents(), this.registerFromSdkEvents(),
|
|
45
|
+
super(...t), this.registerToSdkEvents(), this.registerFromSdkEvents(), us("configured");
|
|
46
46
|
}
|
|
47
47
|
registerToSdkEvents() {
|
|
48
48
|
window.addEventListener("message", (t) => {
|
|
@@ -53,8 +53,8 @@ class Xs extends B {
|
|
|
53
53
|
this.send("settings", { music: s == null ? void 0 : s.musicEnabled, sounds: s == null ? void 0 : s.soundEnabled });
|
|
54
54
|
return;
|
|
55
55
|
case "doBalanceUpdate":
|
|
56
|
-
const { currency: a, coinValueInCents:
|
|
57
|
-
s.currency === a && typeof s.balanceInCurrency == "number" ? this.send("balance", { balance:
|
|
56
|
+
const { currency: a, coinValueInCents: c } = this.sdkConfig.api;
|
|
57
|
+
s.currency === a && typeof s.balanceInCurrency == "number" ? this.send("balance", { balance: $t(s.balanceInCurrency, c) }) : (s.balanceInCoins, this.send("balance", { balance: s.balanceInCoins }));
|
|
58
58
|
return;
|
|
59
59
|
case "doGamePause":
|
|
60
60
|
this.send("freeze");
|
|
@@ -89,8 +89,8 @@ class Xs extends B {
|
|
|
89
89
|
});
|
|
90
90
|
}
|
|
91
91
|
}
|
|
92
|
-
const
|
|
93
|
-
class
|
|
92
|
+
const C = P("▼ DebuggingPlugin IN ▼", "color:#444444;font-weight:bold;"), hs = P("▲ DebuggingPlugin OUT ▲", "color:#444444;font-weight:bold;");
|
|
93
|
+
class Ys extends _ {
|
|
94
94
|
constructor(...t) {
|
|
95
95
|
super(...t), this.registerDebugToSdkEvents(), this.registerSdkToDebugEvents();
|
|
96
96
|
}
|
|
@@ -111,20 +111,20 @@ class Js extends B {
|
|
|
111
111
|
};
|
|
112
112
|
}
|
|
113
113
|
registerSdkToDebugEvents() {
|
|
114
|
-
this.on("autoplay", (t) =>
|
|
114
|
+
this.on("autoplay", (t) => C("autoplay", t)), this.on("balance", (t) => C("balance", t)), this.on("bet", (t) => C("bet", t)), this.on("cashier", (t) => C("cashier", t)), this.on("choice", (t) => C("choice", t)), this.on("close", (t) => C("close", t)), this.on("error", (t) => C("error", t)), this.on("loadEnd", (t) => C("loadEnd", t)), this.on("loadProgress", (t) => C("loadProgress", t)), this.on("loadStart", (t) => C("loadStart", t)), this.on("playCycleStart", (t) => C("playCycleStart", t)), this.on("playCycleEnd", (t) => C("playCycleEnd", t)), this.on("playEnd", (t) => C("playEnd", t)), this.on("playError", (t) => C("playError", t)), this.on("playReady", (t) => C("playReady", t)), this.on("playStart", (t) => C("playStart", t)), this.on("settings", (t) => C("settings", t));
|
|
115
115
|
}
|
|
116
116
|
_send(...t) {
|
|
117
|
-
|
|
117
|
+
hs.apply(null, t), this.send.apply(this, t);
|
|
118
118
|
}
|
|
119
119
|
}
|
|
120
|
-
const
|
|
121
|
-
class
|
|
120
|
+
const kt = P("GigPlugin", "color:#000000;font-weight:bold;");
|
|
121
|
+
class Zs extends _ {
|
|
122
122
|
constructor(...t) {
|
|
123
|
-
super(...t), this.registerToSdkEvents(), this.registerFromSdkEvents(),
|
|
123
|
+
super(...t), this.registerToSdkEvents(), this.registerFromSdkEvents(), kt("configured");
|
|
124
124
|
}
|
|
125
125
|
postMessage(t) {
|
|
126
126
|
const e = { event: t };
|
|
127
|
-
|
|
127
|
+
kt("postMessage", e), window.top.postMessage(e, "*");
|
|
128
128
|
}
|
|
129
129
|
registerToSdkEvents() {
|
|
130
130
|
window.addEventListener("message", (t) => {
|
|
@@ -166,10 +166,10 @@ class Ys extends B {
|
|
|
166
166
|
});
|
|
167
167
|
}
|
|
168
168
|
}
|
|
169
|
-
const
|
|
170
|
-
class
|
|
169
|
+
const ps = P("OryxPlugin", "color:#000000;font-weight:bold;");
|
|
170
|
+
class ei extends _ {
|
|
171
171
|
constructor(...t) {
|
|
172
|
-
super(...t), this.registerToSdkEvents(), this.registerFromSdkEvents(),
|
|
172
|
+
super(...t), this.registerToSdkEvents(), this.registerFromSdkEvents(), ps("configured");
|
|
173
173
|
}
|
|
174
174
|
registerToSdkEvents() {
|
|
175
175
|
window.addEventListener("message", (t) => {
|
|
@@ -221,54 +221,54 @@ class Zs extends B {
|
|
|
221
221
|
});
|
|
222
222
|
}
|
|
223
223
|
}
|
|
224
|
-
const
|
|
225
|
-
function
|
|
224
|
+
const je = P("PariplayPlugin", "color:#000000;font-weight:bold;");
|
|
225
|
+
function $e(i) {
|
|
226
226
|
try {
|
|
227
227
|
window.top.location = i;
|
|
228
228
|
} catch {
|
|
229
229
|
window.location = i;
|
|
230
230
|
}
|
|
231
231
|
}
|
|
232
|
-
function
|
|
232
|
+
function Ke(i, t) {
|
|
233
233
|
return new Promise(function(s, a) {
|
|
234
|
-
const
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
},
|
|
234
|
+
const c = new XMLHttpRequest();
|
|
235
|
+
c.onload = function() {
|
|
236
|
+
c.status >= 200 && c.status < 300 ? s(c.responseText) : a(c.responseText);
|
|
237
|
+
}, c.open(i, t), c.send();
|
|
238
238
|
});
|
|
239
239
|
}
|
|
240
|
-
function
|
|
240
|
+
function Qe() {
|
|
241
241
|
}
|
|
242
|
-
function
|
|
242
|
+
function gs(i) {
|
|
243
243
|
return i.filter(function(e) {
|
|
244
244
|
return e.messageType.toUpperCase() === "DATA";
|
|
245
245
|
});
|
|
246
246
|
}
|
|
247
|
-
function
|
|
247
|
+
function Xe(i) {
|
|
248
248
|
return i.filter(function(e) {
|
|
249
249
|
return ["NOTIFICATION", "POPUP"].includes(e.messageType.toUpperCase());
|
|
250
250
|
});
|
|
251
251
|
}
|
|
252
|
-
function
|
|
252
|
+
function Kt(i) {
|
|
253
253
|
try {
|
|
254
254
|
return JSON.parse(i.text);
|
|
255
255
|
} catch {
|
|
256
256
|
return {};
|
|
257
257
|
}
|
|
258
258
|
}
|
|
259
|
-
function
|
|
260
|
-
return i.map(
|
|
259
|
+
function ws(i) {
|
|
260
|
+
return i.map(Kt).filter(Boolean).find(function(e) {
|
|
261
261
|
return e.betId != null && e.winId != null;
|
|
262
262
|
}) || {};
|
|
263
263
|
}
|
|
264
|
-
function
|
|
265
|
-
return i.map(
|
|
264
|
+
function ms(i) {
|
|
265
|
+
return i.map(Kt).filter(Boolean).find(function(e) {
|
|
266
266
|
return e.TotalBet != null && e.TotalWin != null;
|
|
267
267
|
}) || {};
|
|
268
268
|
}
|
|
269
|
-
class
|
|
269
|
+
class ti extends _ {
|
|
270
270
|
constructor(...t) {
|
|
271
|
-
super(...t), this.registerToSdkEvents(), this.registerFromSdkEvents(),
|
|
271
|
+
super(...t), this.registerToSdkEvents(), this.registerFromSdkEvents(), je("configured");
|
|
272
272
|
}
|
|
273
273
|
postMessage(t, e) {
|
|
274
274
|
const s = {
|
|
@@ -276,26 +276,26 @@ class ei extends B {
|
|
|
276
276
|
sender: this.sdkConfig.api.game,
|
|
277
277
|
type: t
|
|
278
278
|
};
|
|
279
|
-
e != null && (s.data = e),
|
|
279
|
+
e != null && (s.data = e), je("postMessage", s), window.parent.postMessage(s, "*");
|
|
280
280
|
}
|
|
281
281
|
coinsToCurrency(t) {
|
|
282
282
|
return t * this.sdkConfig.api.coinValueInCents / 100;
|
|
283
283
|
}
|
|
284
284
|
handleContinueButton(t, e) {
|
|
285
|
-
t.link &&
|
|
285
|
+
t.link && Ke("GET", t.link), e();
|
|
286
286
|
}
|
|
287
287
|
handleLinkButton(t, e) {
|
|
288
288
|
switch (t.linkType.toUpperCase()) {
|
|
289
289
|
case "AJAX":
|
|
290
|
-
|
|
290
|
+
Ke("GET", t.link), e();
|
|
291
291
|
return;
|
|
292
292
|
case "AJAXRESPONSE":
|
|
293
|
-
|
|
293
|
+
Ke("GET", t.link).then(() => {
|
|
294
294
|
e();
|
|
295
295
|
});
|
|
296
296
|
return;
|
|
297
297
|
case "REDIRECT":
|
|
298
|
-
|
|
298
|
+
$e(t.link), e();
|
|
299
299
|
return;
|
|
300
300
|
}
|
|
301
301
|
}
|
|
@@ -319,17 +319,17 @@ class ei extends B {
|
|
|
319
319
|
}
|
|
320
320
|
processInfoUiMessages(t) {
|
|
321
321
|
return t.reduce((e, s) => e.then(() => new Promise((a) => {
|
|
322
|
-
const
|
|
323
|
-
buttons: s.buttons.filter((
|
|
322
|
+
const c = Object.assign({}, s, {
|
|
323
|
+
buttons: s.buttons.filter((o) => o.action.toUpperCase() === "CASHIER" ? !!this.sdkConfig.api.cashierUrl : !0).map((o) => Object.assign({}, o, {
|
|
324
324
|
onRelease: () => {
|
|
325
|
-
const p = s.messageType.toUpperCase() === "POPUP" ?
|
|
326
|
-
h ? h(
|
|
325
|
+
const p = s.messageType.toUpperCase() === "POPUP" ? Qe : a, h = this.buttonActions[o.action.toUpperCase()];
|
|
326
|
+
h ? h(o, p) : p();
|
|
327
327
|
}
|
|
328
328
|
}))
|
|
329
329
|
});
|
|
330
|
-
|
|
331
|
-
}).catch(
|
|
332
|
-
}).catch(
|
|
330
|
+
je("showMessage", c);
|
|
331
|
+
}).catch(Qe)), Promise.resolve()).then(() => {
|
|
332
|
+
}).catch(Qe);
|
|
333
333
|
}
|
|
334
334
|
registerToSdkEvents() {
|
|
335
335
|
window.addEventListener("message", (t) => {
|
|
@@ -361,12 +361,12 @@ class ei extends B {
|
|
|
361
361
|
try {
|
|
362
362
|
const a = JSON.parse(
|
|
363
363
|
JSON.parse(atob(this.sdkConfig.api.integrationData.token.split(".")[1])).token
|
|
364
|
-
),
|
|
364
|
+
), c = JSON.parse(a.integrationSpecificAttributes.sessionData || "{}");
|
|
365
365
|
s = {
|
|
366
366
|
ClientToken: a.integrationSpecificAttributes.clientToken,
|
|
367
367
|
CurrencyCode: a.currency,
|
|
368
368
|
PlayerTokenId: a.user,
|
|
369
|
-
SessionData:
|
|
369
|
+
SessionData: c
|
|
370
370
|
};
|
|
371
371
|
} catch {
|
|
372
372
|
s = void 0;
|
|
@@ -376,7 +376,7 @@ class ei extends B {
|
|
|
376
376
|
success: !0
|
|
377
377
|
});
|
|
378
378
|
try {
|
|
379
|
-
const a =
|
|
379
|
+
const a = Xe(e.contract.uiMessages);
|
|
380
380
|
this.processInfoUiMessages(a);
|
|
381
381
|
} catch {
|
|
382
382
|
}
|
|
@@ -392,14 +392,14 @@ class ei extends B {
|
|
|
392
392
|
} catch {
|
|
393
393
|
window.history.back();
|
|
394
394
|
}
|
|
395
|
-
else this.sdkConfig.api.homeUrl === "(api)" ? this.postMessage("quit") :
|
|
395
|
+
else this.sdkConfig.api.homeUrl === "(api)" ? this.postMessage("quit") : $e(this.sdkConfig.api.homeUrl);
|
|
396
396
|
}), this.on("playEnd", (e) => {
|
|
397
397
|
this.postMessage("roundEnded", {
|
|
398
398
|
balanceAfter: this.coinsToCurrency(e.contract.balance.coins),
|
|
399
399
|
win: this.coinsToCurrency(e.contract.win.round)
|
|
400
400
|
});
|
|
401
401
|
try {
|
|
402
|
-
const s =
|
|
402
|
+
const s = Xe(e.contract.uiMessages);
|
|
403
403
|
this.processInfoUiMessages(s);
|
|
404
404
|
} catch {
|
|
405
405
|
}
|
|
@@ -418,13 +418,13 @@ class ei extends B {
|
|
|
418
418
|
e.contract.balance.coins + e.contract.bet.lastPaid.base * e.contract.bet.lastPaid.multiplier
|
|
419
419
|
)
|
|
420
420
|
});
|
|
421
|
-
const s = ["BaseGame", "PaidSpin"].includes(e.contract.stateType.thisRound), a =
|
|
421
|
+
const s = ["BaseGame", "PaidSpin"].includes(e.contract.stateType.thisRound), a = gs(e.contract.uiMessages), c = Xe(e.contract.uiMessages), o = ws(a), p = ms(a);
|
|
422
422
|
this.postMessage("ticketReceived", {
|
|
423
423
|
Balance: this.coinsToCurrency(e.contract.balance.coins),
|
|
424
424
|
BetAmount: s ? this.coinsToCurrency(e.contract.bet.lastPaid.base * e.contract.bet.lastPaid.multiplier) : 0,
|
|
425
|
-
CreditTransactionId:
|
|
426
|
-
DebitTransactionId:
|
|
427
|
-
Message:
|
|
425
|
+
CreditTransactionId: o.betId,
|
|
426
|
+
DebitTransactionId: o.winId,
|
|
427
|
+
Message: c,
|
|
428
428
|
SessionData: p,
|
|
429
429
|
Status: {
|
|
430
430
|
ErrCode: 0
|
|
@@ -440,18 +440,18 @@ class ei extends B {
|
|
|
440
440
|
}), this.on("loadStart", () => {
|
|
441
441
|
this.postMessage("onAppFrameReady");
|
|
442
442
|
}), this.on("cashier", () => {
|
|
443
|
-
this.sdkConfig.api.cashierUrl && (this.sdkConfig.api.cashierUrl === "(api)" ? this.postMessage("cashier") :
|
|
443
|
+
this.sdkConfig.api.cashierUrl && (this.sdkConfig.api.cashierUrl === "(api)" ? this.postMessage("cashier") : $e(this.sdkConfig.api.cashierUrl));
|
|
444
444
|
});
|
|
445
445
|
}
|
|
446
446
|
}
|
|
447
|
-
const
|
|
448
|
-
class
|
|
447
|
+
const be = P("RelaxFEIMPlugin", "color:#000000;font-weight:bold;");
|
|
448
|
+
class si extends _ {
|
|
449
449
|
constructor(...e) {
|
|
450
450
|
super(...e);
|
|
451
451
|
b(this, "VERSION", "1.17.0");
|
|
452
452
|
const s = document.createElement("script");
|
|
453
453
|
s.src = `https://d3nsdzdtjbr5ml.cloudfront.net/casino/relaxlibs/feim/${this.VERSION}/rlxfeim.min.js`, s.onload = () => {
|
|
454
|
-
|
|
454
|
+
be("loaded"), window.FEIM.configure({
|
|
455
455
|
p2pConfig: {
|
|
456
456
|
currency: this.sdkConfig.api.currency,
|
|
457
457
|
launchParams: {
|
|
@@ -459,11 +459,11 @@ class ti extends B {
|
|
|
459
459
|
homeurl: "homeUrl"
|
|
460
460
|
}
|
|
461
461
|
}
|
|
462
|
-
}),
|
|
462
|
+
}), be("configured"), this.registerToSdkEvents(), this.registerFromSdkEvents();
|
|
463
463
|
}, document.body.appendChild(s);
|
|
464
464
|
}
|
|
465
465
|
registerToSdkEvents() {
|
|
466
|
-
window.FEIM.on.errorMessageDismissed(() => this.send("unfreeze")), window.FEIM.on.errorMessageDisplayed(() => this.send("freeze")), window.FEIM.on.exitingGame(() =>
|
|
466
|
+
window.FEIM.on.errorMessageDismissed(() => this.send("unfreeze")), window.FEIM.on.errorMessageDisplayed(() => this.send("freeze")), window.FEIM.on.exitingGame(() => be("!!! NOT IMPLEMENTED: exitingGame !!!")), window.FEIM.on.freeze(() => this.send("freeze")), window.FEIM.on.initialized(() => be("!!! NOT IMPLEMENTED: initialized !!!")), window.FEIM.on.pauseAutoPlay(() => this.send("suspend")), window.FEIM.on.refreshBalance(() => be("!!! NOT IMPLEMENTED: refreshBalance !!!")), window.FEIM.on.toggleGameHelp(() => {
|
|
467
467
|
this.send("help");
|
|
468
468
|
}), window.FEIM.on.togglePaytable(() => {
|
|
469
469
|
this.send("paytable");
|
|
@@ -520,20 +520,20 @@ class ti extends B {
|
|
|
520
520
|
});
|
|
521
521
|
}
|
|
522
522
|
}
|
|
523
|
-
const
|
|
524
|
-
class
|
|
523
|
+
const Je = P("TukoPlugin", "color:#000000;font-weight:bold;");
|
|
524
|
+
class ii extends _ {
|
|
525
525
|
constructor(...e) {
|
|
526
526
|
super(...e);
|
|
527
527
|
b(this, "PING_INTERVAL", 1e4);
|
|
528
528
|
const a = new URLSearchParams(window.location.search).get("pingCallbackUrl");
|
|
529
529
|
a && window.setInterval(() => {
|
|
530
530
|
this.ping(a);
|
|
531
|
-
}, this.PING_INTERVAL), this.registerToSdkEvents(), this.registerFromSdkEvents(),
|
|
531
|
+
}, this.PING_INTERVAL), this.registerToSdkEvents(), this.registerFromSdkEvents(), Je("configured");
|
|
532
532
|
}
|
|
533
533
|
ping(e) {
|
|
534
534
|
const s = new XMLHttpRequest();
|
|
535
535
|
s.onreadystatechange = function() {
|
|
536
|
-
s.readyState === XMLHttpRequest.DONE && (s.status === 0 || s.status >= 200 && s.status < 400 ?
|
|
536
|
+
s.readyState === XMLHttpRequest.DONE && (s.status === 0 || s.status >= 200 && s.status < 400 ? Je("ping ok", s) : Je("ping error", s));
|
|
537
537
|
}, s.open("GET", e), s.send();
|
|
538
538
|
}
|
|
539
539
|
registerToSdkEvents() {
|
|
@@ -545,8 +545,8 @@ class si extends B {
|
|
|
545
545
|
this.send("settings", { music: a == null ? void 0 : a.musicEnabled, sounds: a == null ? void 0 : a.soundEnabled });
|
|
546
546
|
return;
|
|
547
547
|
case "doBalanceUpdate":
|
|
548
|
-
const { currency:
|
|
549
|
-
a.currency ===
|
|
548
|
+
const { currency: c, coinValueInCents: o } = this.sdkConfig.api;
|
|
549
|
+
a.currency === c && typeof a.balanceInCurrency == "number" ? this.send("balance", { balance: $t(a.balanceInCurrency, o) }) : (a.balanceInCoins, this.send("balance", { balance: a.balanceInCoins }));
|
|
550
550
|
return;
|
|
551
551
|
case "doGamePause":
|
|
552
552
|
this.send("freeze");
|
|
@@ -581,14 +581,14 @@ class si extends B {
|
|
|
581
581
|
});
|
|
582
582
|
}
|
|
583
583
|
}
|
|
584
|
-
const
|
|
585
|
-
class
|
|
584
|
+
const vt = P("QuantaPlugin", "color:#000000;font-weight:bold;");
|
|
585
|
+
class ai extends _ {
|
|
586
586
|
constructor(...t) {
|
|
587
|
-
super(...t), this.registerFromSdkEvents(),
|
|
587
|
+
super(...t), this.registerFromSdkEvents(), vt("configured");
|
|
588
588
|
}
|
|
589
589
|
postMessage(t) {
|
|
590
590
|
const e = { event: t };
|
|
591
|
-
|
|
591
|
+
vt("postMessage", e), window.parent.postMessage(e, "*");
|
|
592
592
|
}
|
|
593
593
|
registerFromSdkEvents() {
|
|
594
594
|
this.on("close", () => {
|
|
@@ -604,14 +604,14 @@ class ii extends B {
|
|
|
604
604
|
});
|
|
605
605
|
}
|
|
606
606
|
}
|
|
607
|
-
const
|
|
608
|
-
class
|
|
607
|
+
const Et = P("SoftSwissPlugin", "color:#000000;font-weight:bold;");
|
|
608
|
+
class ni extends _ {
|
|
609
609
|
constructor(...t) {
|
|
610
|
-
super(...t), this.registerFromSdkEvents(),
|
|
610
|
+
super(...t), this.registerFromSdkEvents(), Et("configured");
|
|
611
611
|
}
|
|
612
612
|
postMessage(t, e) {
|
|
613
613
|
const s = { event: t, payload: e };
|
|
614
|
-
|
|
614
|
+
Et("postMessage", s), window.top.postMessage(s, "*");
|
|
615
615
|
}
|
|
616
616
|
registerFromSdkEvents() {
|
|
617
617
|
this.on("loadStart", () => {
|
|
@@ -633,14 +633,14 @@ class ai extends B {
|
|
|
633
633
|
});
|
|
634
634
|
}
|
|
635
635
|
}
|
|
636
|
-
const
|
|
637
|
-
class
|
|
636
|
+
const Ct = P("EveryMatrixPlugin", "color:#000000;font-weight:bold;");
|
|
637
|
+
class oi extends _ {
|
|
638
638
|
constructor(...t) {
|
|
639
|
-
super(...t), this.registerToSdkEvents(), this.registerFromSdkEvents(),
|
|
639
|
+
super(...t), this.registerToSdkEvents(), this.registerFromSdkEvents(), Ct("configured");
|
|
640
640
|
}
|
|
641
641
|
postMessage(t, e) {
|
|
642
642
|
const s = { name: t, sender: "game", data: e };
|
|
643
|
-
|
|
643
|
+
Ct("postMessage", s), window.top.postMessage(s, "*");
|
|
644
644
|
}
|
|
645
645
|
registerToSdkEvents() {
|
|
646
646
|
window.addEventListener("message", (t) => {
|
|
@@ -692,92 +692,93 @@ class ni extends B {
|
|
|
692
692
|
});
|
|
693
693
|
}
|
|
694
694
|
}
|
|
695
|
-
var
|
|
695
|
+
var bs = "2.0.5", lt = 500, Mt = "user-agent", he = "", St = "?", Fe = "function", W = "undefined", pe = "object", ut = "string", S = "browser", D = "cpu", R = "device", O = "engine", x = "os", ie = "result", l = "name", n = "type", d = "vendor", u = "version", I = "architecture", Ie = "major", r = "model", Me = "console", m = "mobile", f = "tablet", y = "smarttv", U = "wearable", Oe = "xr", Se = "embedded", Z = "inapp", gt = "brands", J = "formFactors", wt = "fullVersionList", ae = "platform", mt = "platformVersion", qe = "bitness", $ = "sec-ch-ua", fs = $ + "-full-version-list", ys = $ + "-arch", ks = $ + "-" + qe, vs = $ + "-form-factors", Es = $ + "-" + m, Cs = $ + "-" + r, Qt = $ + "-" + ae, Ms = Qt + "-version", Xt = [gt, wt, m, r, ae, mt, I, J, qe], Ue = "Amazon", ee = "Apple", It = "ASUS", Tt = "BlackBerry", X = "Google", At = "Huawei", Ye = "Lenovo", Pt = "Honor", Le = "LG", Ze = "Microsoft", et = "Motorola", tt = "Nvidia", xt = "OnePlus", st = "OPPO", fe = "Samsung", Ot = "Sharp", ye = "Sony", it = "Xiaomi", at = "Zebra", Ut = "Chrome", Lt = "Chromium", V = "Chromecast", _e = "Edge", ke = "Firefox", ve = "Opera", nt = "Facebook", Rt = "Sogou", te = "Mobile ", Ee = " Browser", ht = "Windows", Ss = typeof window !== W, T = Ss && window.navigator ? window.navigator : void 0, z = T && T.userAgentData ? T.userAgentData : void 0, Is = function(i, t) {
|
|
696
696
|
var e = {}, s = t;
|
|
697
|
-
if (!
|
|
697
|
+
if (!De(t)) {
|
|
698
698
|
s = {};
|
|
699
699
|
for (var a in t)
|
|
700
|
-
for (var
|
|
701
|
-
s[
|
|
700
|
+
for (var c in t[a])
|
|
701
|
+
s[c] = t[a][c].concat(s[c] ? s[c] : []);
|
|
702
702
|
}
|
|
703
|
-
for (var
|
|
704
|
-
e[
|
|
703
|
+
for (var o in i)
|
|
704
|
+
e[o] = s[o] && s[o].length % 2 === 0 ? s[o].concat(i[o]) : i[o];
|
|
705
705
|
return e;
|
|
706
|
-
},
|
|
706
|
+
}, We = function(i) {
|
|
707
707
|
for (var t = {}, e = 0; e < i.length; e++)
|
|
708
708
|
t[i[e].toUpperCase()] = i[e];
|
|
709
709
|
return t;
|
|
710
|
-
},
|
|
711
|
-
if (typeof i ===
|
|
710
|
+
}, pt = function(i, t) {
|
|
711
|
+
if (typeof i === pe && i.length > 0) {
|
|
712
712
|
for (var e in i)
|
|
713
|
-
if (
|
|
713
|
+
if (j(t) == j(i[e])) return !0;
|
|
714
714
|
return !1;
|
|
715
715
|
}
|
|
716
|
-
return
|
|
717
|
-
},
|
|
716
|
+
return we(i) ? j(t) == j(i) : !1;
|
|
717
|
+
}, De = function(i, t) {
|
|
718
718
|
for (var e in i)
|
|
719
|
-
return /^(browser|cpu|device|engine|os)$/.test(e) || (t ?
|
|
720
|
-
},
|
|
721
|
-
return typeof i ===
|
|
722
|
-
},
|
|
719
|
+
return /^(browser|cpu|device|engine|os)$/.test(e) || (t ? De(i[e]) : !1);
|
|
720
|
+
}, we = function(i) {
|
|
721
|
+
return typeof i === ut;
|
|
722
|
+
}, ot = function(i) {
|
|
723
723
|
if (i) {
|
|
724
|
-
for (var t = [], e =
|
|
724
|
+
for (var t = [], e = ge(/\\?\"/g, i).split(","), s = 0; s < e.length; s++)
|
|
725
725
|
if (e[s].indexOf(";") > -1) {
|
|
726
|
-
var a =
|
|
726
|
+
var a = Ne(e[s]).split(";v=");
|
|
727
727
|
t[s] = { brand: a[0], version: a[1] };
|
|
728
728
|
} else
|
|
729
|
-
t[s] =
|
|
729
|
+
t[s] = Ne(e[s]);
|
|
730
730
|
return t;
|
|
731
731
|
}
|
|
732
|
-
},
|
|
733
|
-
return
|
|
734
|
-
},
|
|
735
|
-
return
|
|
736
|
-
},
|
|
737
|
-
for (var t in i)
|
|
738
|
-
|
|
739
|
-
|
|
740
|
-
|
|
732
|
+
}, j = function(i) {
|
|
733
|
+
return we(i) ? i.toLowerCase() : i;
|
|
734
|
+
}, rt = function(i) {
|
|
735
|
+
return we(i) ? ge(/[^\d\.]/g, i).split(".")[0] : void 0;
|
|
736
|
+
}, N = function(i) {
|
|
737
|
+
for (var t in i)
|
|
738
|
+
if (i.hasOwnProperty(t)) {
|
|
739
|
+
var e = i[t];
|
|
740
|
+
typeof e == pe && e.length == 2 ? this[e[0]] = e[1] : this[e] = void 0;
|
|
741
|
+
}
|
|
741
742
|
return this;
|
|
742
|
-
},
|
|
743
|
-
return
|
|
743
|
+
}, ge = function(i, t) {
|
|
744
|
+
return we(t) ? t.replace(i, he) : t;
|
|
744
745
|
}, Ce = function(i) {
|
|
745
|
-
return
|
|
746
|
-
},
|
|
747
|
-
if (
|
|
748
|
-
return i =
|
|
749
|
-
},
|
|
746
|
+
return ge(/\\?\"/g, i);
|
|
747
|
+
}, Ne = function(i, t) {
|
|
748
|
+
if (we(i))
|
|
749
|
+
return i = ge(/^\s\s*/, i), typeof t === W ? i : i.substring(0, lt);
|
|
750
|
+
}, ct = function(i, t) {
|
|
750
751
|
if (!(!i || !t))
|
|
751
|
-
for (var e = 0, s, a,
|
|
752
|
-
var
|
|
753
|
-
for (s = a = 0; s <
|
|
754
|
-
if (p =
|
|
755
|
-
for (
|
|
756
|
-
h = p[++a],
|
|
752
|
+
for (var e = 0, s, a, c, o, p, h; e < t.length && !p; ) {
|
|
753
|
+
var w = t[e], g = t[e + 1];
|
|
754
|
+
for (s = a = 0; s < w.length && !p && w[s]; )
|
|
755
|
+
if (p = w[s++].exec(i), p)
|
|
756
|
+
for (c = 0; c < g.length; c++)
|
|
757
|
+
h = p[++a], o = g[c], typeof o === pe && o.length > 0 ? o.length === 2 ? typeof o[1] == Fe ? this[o[0]] = o[1].call(this, h) : this[o[0]] = o[1] : o.length >= 3 && (typeof o[1] === Fe && !(o[1].exec && o[1].test) ? o.length > 3 ? this[o[0]] = h ? o[1].apply(this, o.slice(2)) : void 0 : this[o[0]] = h ? o[1].call(this, h, o[2]) : void 0 : o.length == 3 ? this[o[0]] = h ? h.replace(o[1], o[2]) : void 0 : o.length == 4 ? this[o[0]] = h ? o[3].call(this, h.replace(o[1], o[2])) : void 0 : o.length > 4 && (this[o[0]] = h ? o[3].apply(this, [h.replace(o[1], o[2])].concat(o.slice(4))) : void 0)) : this[o] = h || void 0;
|
|
757
758
|
e += 2;
|
|
758
759
|
}
|
|
759
|
-
},
|
|
760
|
+
}, L = function(i, t) {
|
|
760
761
|
for (var e in t)
|
|
761
|
-
if (typeof t[e] ===
|
|
762
|
+
if (typeof t[e] === pe && t[e].length > 0) {
|
|
762
763
|
for (var s = 0; s < t[e].length; s++)
|
|
763
|
-
if (
|
|
764
|
-
return e ===
|
|
765
|
-
} else if (
|
|
766
|
-
return e ===
|
|
764
|
+
if (pt(t[e][s], i))
|
|
765
|
+
return e === St ? void 0 : e;
|
|
766
|
+
} else if (pt(t[e], i))
|
|
767
|
+
return e === St ? void 0 : e;
|
|
767
768
|
return t.hasOwnProperty("*") ? t["*"] : i;
|
|
768
|
-
}, Lt = {
|
|
769
|
-
ME: "4.90",
|
|
770
|
-
"NT 3.11": "NT3.51",
|
|
771
|
-
"NT 4.0": "NT4.0",
|
|
772
|
-
2e3: "NT 5.0",
|
|
773
|
-
XP: ["NT 5.1", "NT 5.2"],
|
|
774
|
-
Vista: "NT 6.0",
|
|
775
|
-
7: "NT 6.1",
|
|
776
|
-
8: "NT 6.2",
|
|
777
|
-
"8.1": "NT 6.3",
|
|
778
|
-
10: ["NT 6.4", "NT 10.0"],
|
|
779
|
-
RT: "ARM"
|
|
780
769
|
}, Bt = {
|
|
770
|
+
ME: "4.90",
|
|
771
|
+
"NT 3.51": "3.51",
|
|
772
|
+
"NT 4.0": "4.0",
|
|
773
|
+
2e3: ["5.0", "5.01"],
|
|
774
|
+
XP: ["5.1", "5.2"],
|
|
775
|
+
Vista: "6.0",
|
|
776
|
+
7: "6.1",
|
|
777
|
+
8: "6.2",
|
|
778
|
+
"8.1": "6.3",
|
|
779
|
+
10: ["6.4", "10.0"],
|
|
780
|
+
NT: ""
|
|
781
|
+
}, _t = {
|
|
781
782
|
embedded: "Automotive",
|
|
782
783
|
mobile: "Mobile",
|
|
783
784
|
tablet: ["Tablet", "EInk"],
|
|
@@ -786,18 +787,32 @@ var ms = "2.0.3", ct = 500, vt = "user-agent", ue = "", Ct = "?", _e = "function
|
|
|
786
787
|
xr: ["VR", "XR"],
|
|
787
788
|
"?": ["Desktop", "Unknown"],
|
|
788
789
|
"*": void 0
|
|
789
|
-
},
|
|
790
|
+
}, Ts = {
|
|
791
|
+
Chrome: "Google Chrome",
|
|
792
|
+
Edge: "Microsoft Edge",
|
|
793
|
+
"Edge WebView2": "Microsoft Edge WebView2",
|
|
794
|
+
"Chrome WebView": "Android WebView",
|
|
795
|
+
"Chrome Headless": "HeadlessChrome",
|
|
796
|
+
"Huawei Browser": "HuaweiBrowser",
|
|
797
|
+
"MIUI Browser": "Miui Browser",
|
|
798
|
+
"Opera Mobi": "OperaMobile",
|
|
799
|
+
Yandex: "YaBrowser"
|
|
800
|
+
}, Ft = {
|
|
790
801
|
browser: [
|
|
791
802
|
[
|
|
792
803
|
// Most common regardless engine
|
|
793
804
|
/\b(?:crmo|crios)\/([\w\.]+)/i
|
|
794
805
|
// Chrome for Android/iOS
|
|
795
806
|
],
|
|
796
|
-
[u, [l,
|
|
807
|
+
[u, [l, te + "Chrome"]],
|
|
797
808
|
[
|
|
798
|
-
/
|
|
809
|
+
/webview.+edge\/([\w\.]+)/i
|
|
799
810
|
// Microsoft Edge
|
|
800
811
|
],
|
|
812
|
+
[u, [l, _e + " WebView"]],
|
|
813
|
+
[
|
|
814
|
+
/edg(?:e|ios|a)?\/([\w\.]+)/i
|
|
815
|
+
],
|
|
801
816
|
[u, [l, "Edge"]],
|
|
802
817
|
[
|
|
803
818
|
// Presto based
|
|
@@ -813,17 +828,17 @@ var ms = "2.0.3", ct = 500, vt = "user-agent", ue = "", Ct = "?", _e = "function
|
|
|
813
828
|
/opios[\/ ]+([\w\.]+)/i
|
|
814
829
|
// Opera mini on iphone >= 8.0
|
|
815
830
|
],
|
|
816
|
-
[u, [l,
|
|
831
|
+
[u, [l, ve + " Mini"]],
|
|
817
832
|
[
|
|
818
833
|
/\bop(?:rg)?x\/([\w\.]+)/i
|
|
819
834
|
// Opera GX
|
|
820
835
|
],
|
|
821
|
-
[u, [l,
|
|
836
|
+
[u, [l, ve + " GX"]],
|
|
822
837
|
[
|
|
823
838
|
/\bopr\/([\w\.]+)/i
|
|
824
839
|
// Opera Webkit
|
|
825
840
|
],
|
|
826
|
-
[u, [l,
|
|
841
|
+
[u, [l, ve]],
|
|
827
842
|
[
|
|
828
843
|
// Mixed
|
|
829
844
|
/\bb[ai]*d(?:uhd|[ub]*[aekoprswx]{5,6})[\/ ]?([\w\.]+)/i
|
|
@@ -896,12 +911,12 @@ var ms = "2.0.3", ct = 500, vt = "user-agent", ue = "", Ct = "?", _e = "function
|
|
|
896
911
|
/slbrowser\/([\w\.]+)/i
|
|
897
912
|
// Smart Lenovo Browser
|
|
898
913
|
],
|
|
899
|
-
[u, [l, "Smart " +
|
|
914
|
+
[u, [l, "Smart " + Ye + Ee]],
|
|
900
915
|
[
|
|
901
916
|
/(avast|avg)\/([\w\.]+)/i
|
|
902
917
|
// Avast/AVG Secure Browser
|
|
903
918
|
],
|
|
904
|
-
[[l, /(.+)/, "$1 Secure" +
|
|
919
|
+
[[l, /(.+)/, "$1 Secure" + Ee], u],
|
|
905
920
|
[
|
|
906
921
|
/\bfocus\/([\w\.]+)/i
|
|
907
922
|
// Firefox Focus
|
|
@@ -911,7 +926,7 @@ var ms = "2.0.3", ct = 500, vt = "user-agent", ue = "", Ct = "?", _e = "function
|
|
|
911
926
|
/\bopt\/([\w\.]+)/i
|
|
912
927
|
// Opera Touch
|
|
913
928
|
],
|
|
914
|
-
[u, [l,
|
|
929
|
+
[u, [l, ve + " Touch"]],
|
|
915
930
|
[
|
|
916
931
|
/coc_coc\w+\/([\w\.]+)/i
|
|
917
932
|
// Coc Coc Browser
|
|
@@ -926,17 +941,17 @@ var ms = "2.0.3", ct = 500, vt = "user-agent", ue = "", Ct = "?", _e = "function
|
|
|
926
941
|
/coast\/([\w\.]+)/i
|
|
927
942
|
// Opera Coast
|
|
928
943
|
],
|
|
929
|
-
[u, [l,
|
|
944
|
+
[u, [l, ve + " Coast"]],
|
|
930
945
|
[
|
|
931
946
|
/miuibrowser\/([\w\.]+)/i
|
|
932
947
|
// MIUI Browser
|
|
933
948
|
],
|
|
934
|
-
[u, [l, "MIUI" +
|
|
949
|
+
[u, [l, "MIUI" + Ee]],
|
|
935
950
|
[
|
|
936
951
|
/fxios\/([\w\.-]+)/i
|
|
937
952
|
// Firefox for iOS
|
|
938
953
|
],
|
|
939
|
-
[u, [l,
|
|
954
|
+
[u, [l, te + ke]],
|
|
940
955
|
[
|
|
941
956
|
/\bqihoobrowser\/?([\w\.]*)/i
|
|
942
957
|
// 360
|
|
@@ -950,7 +965,7 @@ var ms = "2.0.3", ct = 500, vt = "user-agent", ue = "", Ct = "?", _e = "function
|
|
|
950
965
|
[
|
|
951
966
|
/(oculus|sailfish|huawei|vivo|pico)browser\/([\w\.]+)/i
|
|
952
967
|
],
|
|
953
|
-
[[l, /(.+)/, "$1" +
|
|
968
|
+
[[l, /(.+)/, "$1" + Ee], u],
|
|
954
969
|
[
|
|
955
970
|
// Oculus/Sailfish/HuaweiBrowser/VivoBrowser/PicoBrowser
|
|
956
971
|
/samsungbrowser\/([\w\.]+)/i
|
|
@@ -993,10 +1008,8 @@ var ms = "2.0.3", ct = 500, vt = "user-agent", ue = "", Ct = "?", _e = "function
|
|
|
993
1008
|
/((?:fban\/fbios|fb_iab\/fb4a)(?!.+fbav)|;fbav\/([\w\.]+);)/i
|
|
994
1009
|
// Facebook App for iOS & Android
|
|
995
1010
|
],
|
|
996
|
-
[[l,
|
|
1011
|
+
[[l, nt], u, [n, Z]],
|
|
997
1012
|
[
|
|
998
|
-
/(Klarna)\/([\w\.]+)/i,
|
|
999
|
-
// Klarna Shopping Browser for iOS & Android
|
|
1000
1013
|
/(kakao(?:talk|story))[\/ ]([\w\.]+)/i,
|
|
1001
1014
|
// Kakao App
|
|
1002
1015
|
/(naver)\(.*?(\d+\.[\w\.]+).*\)/i,
|
|
@@ -1011,25 +1024,30 @@ var ms = "2.0.3", ct = 500, vt = "user-agent", ue = "", Ct = "?", _e = "function
|
|
|
1011
1024
|
// Alipay
|
|
1012
1025
|
/(twitter)(?:and| f.+e\/([\w\.]+))/i,
|
|
1013
1026
|
// Twitter
|
|
1014
|
-
/(instagram|snapchat)[\/ ]([-\w\.]+)/i
|
|
1015
|
-
// Instagram/Snapchat
|
|
1027
|
+
/(instagram|snapchat|klarna)[\/ ]([-\w\.]+)/i
|
|
1028
|
+
// Instagram/Snapchat/Klarna
|
|
1016
1029
|
],
|
|
1017
|
-
[l, u, [n,
|
|
1030
|
+
[l, u, [n, Z]],
|
|
1018
1031
|
[
|
|
1019
1032
|
/\bgsa\/([\w\.]+) .*safari\//i
|
|
1020
1033
|
// Google Search Appliance on iOS
|
|
1021
1034
|
],
|
|
1022
|
-
[u, [l, "GSA"], [n,
|
|
1035
|
+
[u, [l, "GSA"], [n, Z]],
|
|
1023
1036
|
[
|
|
1024
1037
|
/musical_ly(?:.+app_?version\/|_)([\w\.]+)/i
|
|
1025
1038
|
// TikTok
|
|
1026
1039
|
],
|
|
1027
|
-
[u, [l, "TikTok"], [n,
|
|
1040
|
+
[u, [l, "TikTok"], [n, Z]],
|
|
1028
1041
|
[
|
|
1029
1042
|
/\[(linkedin)app\]/i
|
|
1030
1043
|
// LinkedIn App for iOS & Android
|
|
1031
1044
|
],
|
|
1032
|
-
[l, [n,
|
|
1045
|
+
[l, [n, Z]],
|
|
1046
|
+
[
|
|
1047
|
+
/(zalo(?:app)?)[\/\sa-z]*([\w\.-]+)/i
|
|
1048
|
+
// Zalo
|
|
1049
|
+
],
|
|
1050
|
+
[[l, /(.+)/, "Zalo"], u, [n, Z]],
|
|
1033
1051
|
[
|
|
1034
1052
|
/(chromium)[\/ ]([-\w\.]+)/i
|
|
1035
1053
|
// Chromium
|
|
@@ -1039,22 +1057,27 @@ var ms = "2.0.3", ct = 500, vt = "user-agent", ue = "", Ct = "?", _e = "function
|
|
|
1039
1057
|
/headlesschrome(?:\/([\w\.]+)| )/i
|
|
1040
1058
|
// Chrome Headless
|
|
1041
1059
|
],
|
|
1042
|
-
[u, [l,
|
|
1060
|
+
[u, [l, Ut + " Headless"]],
|
|
1061
|
+
[
|
|
1062
|
+
/wv\).+chrome\/([\w\.]+).+edgw\//i
|
|
1063
|
+
// Edge WebView2
|
|
1064
|
+
],
|
|
1065
|
+
[u, [l, _e + " WebView2"]],
|
|
1043
1066
|
[
|
|
1044
1067
|
/ wv\).+(chrome)\/([\w\.]+)/i
|
|
1045
1068
|
// Chrome WebView
|
|
1046
1069
|
],
|
|
1047
|
-
[[l,
|
|
1070
|
+
[[l, Ut + " WebView"], u],
|
|
1048
1071
|
[
|
|
1049
1072
|
/droid.+ version\/([\w\.]+)\b.+(?:mobile safari|safari)/i
|
|
1050
1073
|
// Android Browser
|
|
1051
1074
|
],
|
|
1052
|
-
[u, [l, "Android" +
|
|
1075
|
+
[u, [l, "Android" + Ee]],
|
|
1053
1076
|
[
|
|
1054
1077
|
/chrome\/([\w\.]+) mobile/i
|
|
1055
1078
|
// Chrome Mobile
|
|
1056
1079
|
],
|
|
1057
|
-
[u, [l,
|
|
1080
|
+
[u, [l, te + "Chrome"]],
|
|
1058
1081
|
[
|
|
1059
1082
|
/(chrome|omniweb|arora|[tizenoka]{5} ?browser)\/v?([\w\.]+)/i
|
|
1060
1083
|
// Chrome/OmniWeb/Arora/Tizen/Nokia
|
|
@@ -1064,11 +1087,11 @@ var ms = "2.0.3", ct = 500, vt = "user-agent", ue = "", Ct = "?", _e = "function
|
|
|
1064
1087
|
/version\/([\w\.\,]+) .*mobile(?:\/\w+ | ?)safari/i
|
|
1065
1088
|
// Safari Mobile
|
|
1066
1089
|
],
|
|
1067
|
-
[u, [l,
|
|
1090
|
+
[u, [l, te + "Safari"]],
|
|
1068
1091
|
[
|
|
1069
1092
|
/iphone .*mobile(?:\/\w+ | ?)safari/i
|
|
1070
1093
|
],
|
|
1071
|
-
[[l,
|
|
1094
|
+
[[l, te + "Safari"]],
|
|
1072
1095
|
[
|
|
1073
1096
|
/version\/([\w\.\,]+) .*(safari)/i
|
|
1074
1097
|
// Safari
|
|
@@ -1088,7 +1111,7 @@ var ms = "2.0.3", ct = 500, vt = "user-agent", ue = "", Ct = "?", _e = "function
|
|
|
1088
1111
|
/(?:mobile|tablet);.*(firefox)\/([\w\.-]+)/i
|
|
1089
1112
|
// Firefox Mobile
|
|
1090
1113
|
],
|
|
1091
|
-
[[l,
|
|
1114
|
+
[[l, te + ke], u],
|
|
1092
1115
|
[
|
|
1093
1116
|
/(navigator|netscape\d?)\/([-\w\.]+)/i
|
|
1094
1117
|
// Netscape
|
|
@@ -1128,51 +1151,54 @@ var ms = "2.0.3", ct = 500, vt = "user-agent", ue = "", Ct = "?", _e = "function
|
|
|
1128
1151
|
/(cobalt)\/([\w\.]+)/i
|
|
1129
1152
|
// Cobalt
|
|
1130
1153
|
],
|
|
1131
|
-
[l, [u, /[^\d\.]+./,
|
|
1154
|
+
[l, [u, /[^\d\.]+./, he]]
|
|
1132
1155
|
],
|
|
1133
1156
|
cpu: [
|
|
1134
1157
|
[
|
|
1135
1158
|
/\b((amd|x|x86[-_]?|wow|win)64)\b/i
|
|
1136
1159
|
// AMD64 (x64)
|
|
1137
1160
|
],
|
|
1138
|
-
[[
|
|
1161
|
+
[[I, "amd64"]],
|
|
1139
1162
|
[
|
|
1140
1163
|
/(ia32(?=;))/i,
|
|
1141
1164
|
// IA32 (quicktime)
|
|
1142
1165
|
/\b((i[346]|x)86)(pc)?\b/i
|
|
1143
1166
|
// IA32 (x86)
|
|
1144
1167
|
],
|
|
1145
|
-
[[
|
|
1168
|
+
[[I, "ia32"]],
|
|
1146
1169
|
[
|
|
1147
1170
|
/\b(aarch64|arm(v?[89]e?l?|_?64))\b/i
|
|
1148
1171
|
// ARM64
|
|
1149
1172
|
],
|
|
1150
|
-
[[
|
|
1173
|
+
[[I, "arm64"]],
|
|
1151
1174
|
[
|
|
1152
1175
|
/\b(arm(v[67])?ht?n?[fl]p?)\b/i
|
|
1153
1176
|
// ARMHF
|
|
1154
1177
|
],
|
|
1155
|
-
[[
|
|
1178
|
+
[[I, "armhf"]],
|
|
1156
1179
|
[
|
|
1157
1180
|
// PocketPC mistakenly identified as PowerPC
|
|
1158
1181
|
/( (ce|mobile); ppc;|\/[\w\.]+arm\b)/i
|
|
1159
1182
|
],
|
|
1160
|
-
[[
|
|
1161
|
-
[
|
|
1162
|
-
/((ppc|powerpc)(64)?)( mac|;|\))/i
|
|
1163
|
-
// PowerPC
|
|
1164
|
-
],
|
|
1165
|
-
[[T, /ower/, ue, F]],
|
|
1183
|
+
[[I, "arm"]],
|
|
1166
1184
|
[
|
|
1167
1185
|
/ sun4\w[;\)]/i
|
|
1168
1186
|
// SPARC
|
|
1169
1187
|
],
|
|
1170
|
-
[[
|
|
1188
|
+
[[I, "sparc"]],
|
|
1171
1189
|
[
|
|
1172
|
-
/\b(avr32|ia64(?=;)|68k(?=\))|\barm(?=v([1-7]|[5-7]1)l?|;|eabi)|(irix|mips|sparc)(64)?\b|pa-risc)/i
|
|
1173
1190
|
// IA64, 68K, ARM/64, AVR/32, IRIX/64, MIPS/64, SPARC/64, PA-RISC
|
|
1191
|
+
/\b(avr32|ia64(?=;)|68k(?=\))|\barm(?=v([1-7]|[5-7]1)l?|;|eabi)|(irix|mips|sparc)(64)?\b|pa-risc)/i,
|
|
1192
|
+
/((ppc|powerpc)(64)?)( mac|;|\))/i,
|
|
1193
|
+
// PowerPC
|
|
1194
|
+
/(?:osf1|[freopnt]{3,4}bsd) (alpha)/i
|
|
1195
|
+
// Alpha
|
|
1196
|
+
],
|
|
1197
|
+
[[I, /ower/, he, j]],
|
|
1198
|
+
[
|
|
1199
|
+
/winnt.+\[axp/i
|
|
1174
1200
|
],
|
|
1175
|
-
[[
|
|
1201
|
+
[[I, "alpha"]]
|
|
1176
1202
|
],
|
|
1177
1203
|
device: [
|
|
1178
1204
|
[
|
|
@@ -1182,61 +1208,61 @@ var ms = "2.0.3", ct = 500, vt = "user-agent", ue = "", Ct = "?", _e = "function
|
|
|
1182
1208
|
// Samsung
|
|
1183
1209
|
/\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
|
|
1184
1210
|
],
|
|
1185
|
-
[
|
|
1211
|
+
[r, [d, fe], [n, f]],
|
|
1186
1212
|
[
|
|
1187
1213
|
/\b((?:s[cgp]h|gt|sm)-(?![lr])\w+|sc[g-]?[\d]+a?|galaxy nexus)/i,
|
|
1188
|
-
/samsung[- ]((?!sm-[lr])[-\w]+)/i,
|
|
1214
|
+
/samsung[- ]((?!sm-[lr]|browser)[-\w]+)/i,
|
|
1189
1215
|
/sec-(sgh\w+)/i
|
|
1190
1216
|
],
|
|
1191
|
-
[
|
|
1217
|
+
[r, [d, fe], [n, m]],
|
|
1192
1218
|
[
|
|
1193
1219
|
// Apple
|
|
1194
1220
|
/(?:\/|\()(ip(?:hone|od)[\w, ]*)(?:\/|;)/i
|
|
1195
1221
|
// iPod/iPhone
|
|
1196
1222
|
],
|
|
1197
|
-
[
|
|
1223
|
+
[r, [d, ee], [n, m]],
|
|
1198
1224
|
[
|
|
1199
1225
|
/\((ipad);[-\w\),; ]+apple/i,
|
|
1200
1226
|
// iPad
|
|
1201
1227
|
/applecoremedia\/[\w\.]+ \((ipad)/i,
|
|
1202
1228
|
/\b(ipad)\d\d?,\d\d?[;\]].+ios/i
|
|
1203
1229
|
],
|
|
1204
|
-
[
|
|
1230
|
+
[r, [d, ee], [n, f]],
|
|
1205
1231
|
[
|
|
1206
1232
|
/(macintosh);/i
|
|
1207
1233
|
],
|
|
1208
|
-
[
|
|
1234
|
+
[r, [d, ee]],
|
|
1209
1235
|
[
|
|
1210
1236
|
// Sharp
|
|
1211
1237
|
/\b(sh-?[altvz]?\d\d[a-ekm]?)/i
|
|
1212
1238
|
],
|
|
1213
|
-
[
|
|
1239
|
+
[r, [d, Ot], [n, m]],
|
|
1214
1240
|
[
|
|
1215
1241
|
// Honor
|
|
1216
1242
|
/\b((?:brt|eln|hey2?|gdi|jdn)-a?[lnw]09|(?:ag[rm]3?|jdn2|kob2)-a?[lw]0[09]hn)(?: bui|\)|;)/i
|
|
1217
1243
|
],
|
|
1218
|
-
[
|
|
1244
|
+
[r, [d, Pt], [n, f]],
|
|
1219
1245
|
[
|
|
1220
1246
|
/honor([-\w ]+)[;\)]/i
|
|
1221
1247
|
],
|
|
1222
|
-
[
|
|
1248
|
+
[r, [d, Pt], [n, m]],
|
|
1223
1249
|
[
|
|
1224
1250
|
// Huawei
|
|
1225
1251
|
/\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
|
|
1226
1252
|
],
|
|
1227
|
-
[
|
|
1253
|
+
[r, [d, At], [n, f]],
|
|
1228
1254
|
[
|
|
1229
1255
|
/(?:huawei)([-\w ]+)[;\)]/i,
|
|
1230
1256
|
/\b(nexus 6p|\w{2,4}e?-[atu]?[ln][\dx][012359c][adn]?)\b(?!.+d\/s)/i
|
|
1231
1257
|
],
|
|
1232
|
-
[
|
|
1258
|
+
[r, [d, At], [n, m]],
|
|
1233
1259
|
[
|
|
1234
1260
|
// Xiaomi
|
|
1235
1261
|
/oid[^\)]+; (2[\dbc]{4}(182|283|rp\w{2})[cgl]|m2105k81a?c)(?: bui|\))/i,
|
|
1236
1262
|
/\b((?:red)?mi[-_ ]?pad[\w- ]*)(?: bui|\))/i
|
|
1237
1263
|
// Mi Pad tablets
|
|
1238
1264
|
],
|
|
1239
|
-
[[
|
|
1265
|
+
[[r, /_/g, " "], [d, it], [n, f]],
|
|
1240
1266
|
[
|
|
1241
1267
|
/\b(poco[\w ]+|m2\d{3}j\d\d[a-z]{2})(?: bui|\))/i,
|
|
1242
1268
|
// Xiaomi POCO
|
|
@@ -1252,98 +1278,107 @@ var ms = "2.0.3", ct = 500, vt = "user-agent", ue = "", Ct = "?", _e = "function
|
|
|
1252
1278
|
// Xiaomi Mi
|
|
1253
1279
|
/ ([\w ]+) miui\/v?\d/i
|
|
1254
1280
|
],
|
|
1255
|
-
[[
|
|
1281
|
+
[[r, /_/g, " "], [d, it], [n, m]],
|
|
1282
|
+
[
|
|
1283
|
+
// OnePlus
|
|
1284
|
+
/droid.+; (cph2[3-6]\d[13579]|((gm|hd)19|(ac|be|in|kb)20|(d[en]|eb|le|mt)21|ne22)[0-2]\d|p[g-k]\w[1m]10)\b/i,
|
|
1285
|
+
/(?:one)?(?:plus)? (a\d0\d\d)(?: b|\))/i
|
|
1286
|
+
],
|
|
1287
|
+
[r, [d, xt], [n, m]],
|
|
1256
1288
|
[
|
|
1257
1289
|
// OPPO
|
|
1258
1290
|
/; (\w+) bui.+ oppo/i,
|
|
1259
1291
|
/\b(cph[12]\d{3}|p(?:af|c[al]|d\w|e[ar])[mt]\d0|x9007|a101op)\b/i
|
|
1260
1292
|
],
|
|
1261
|
-
[
|
|
1293
|
+
[r, [d, st], [n, m]],
|
|
1262
1294
|
[
|
|
1263
1295
|
/\b(opd2(\d{3}a?))(?: bui|\))/i
|
|
1264
1296
|
],
|
|
1265
|
-
[
|
|
1297
|
+
[r, [d, L, { OnePlus: ["203", "304", "403", "404", "413", "415"], "*": st }], [n, f]],
|
|
1266
1298
|
[
|
|
1267
|
-
// BLU
|
|
1299
|
+
// BLU
|
|
1268
1300
|
/(vivo (5r?|6|8l?|go|one|s|x[il]?[2-4]?)[\w\+ ]*)(?: bui|\))/i
|
|
1301
|
+
// Vivo series
|
|
1269
1302
|
],
|
|
1270
|
-
[
|
|
1303
|
+
[r, [d, "BLU"], [n, m]],
|
|
1271
1304
|
[
|
|
1272
1305
|
// Vivo
|
|
1273
1306
|
/; vivo (\w+)(?: bui|\))/i,
|
|
1274
1307
|
/\b(v[12]\d{3}\w?[at])(?: bui|;)/i
|
|
1275
1308
|
],
|
|
1276
|
-
[
|
|
1309
|
+
[r, [d, "Vivo"], [n, m]],
|
|
1277
1310
|
[
|
|
1278
1311
|
// Realme
|
|
1279
1312
|
/\b(rmx[1-3]\d{3})(?: bui|;|\))/i
|
|
1280
1313
|
],
|
|
1281
|
-
[
|
|
1314
|
+
[r, [d, "Realme"], [n, m]],
|
|
1315
|
+
[
|
|
1316
|
+
// Lenovo
|
|
1317
|
+
/(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,
|
|
1318
|
+
/lenovo ?(b[68]0[08]0-?[hf]?|tab(?:[\w- ]+?)|tb[\w-]{6,7})( bui|;|\)|\/)/i
|
|
1319
|
+
],
|
|
1320
|
+
[r, [d, Ye], [n, f]],
|
|
1321
|
+
[
|
|
1322
|
+
/lenovo[-_ ]?([-\w ]+?)(?: bui|\)|\/)/i
|
|
1323
|
+
],
|
|
1324
|
+
[r, [d, Ye], [n, m]],
|
|
1282
1325
|
[
|
|
1283
1326
|
// Motorola
|
|
1284
1327
|
/\b(milestone|droid(?:[2-4x]| (?:bionic|x2|pro|razr))?:?( 4g)?)\b[\w ]+build\//i,
|
|
1285
|
-
/\bmot(?:orola)?[- ](\w
|
|
1286
|
-
/((?:moto(?! 360)[
|
|
1328
|
+
/\bmot(?:orola)?[- ]([\w\s]+)(\)| bui)/i,
|
|
1329
|
+
/((?:moto(?! 360)[-\w\(\) ]+|xt\d{3,4}[cgkosw\+]?[-\d]*|nexus 6)(?= bui|\)))/i
|
|
1287
1330
|
],
|
|
1288
|
-
[
|
|
1331
|
+
[r, [d, et], [n, m]],
|
|
1289
1332
|
[
|
|
1290
1333
|
/\b(mz60\d|xoom[2 ]{0,2}) build\//i
|
|
1291
1334
|
],
|
|
1292
|
-
[
|
|
1335
|
+
[r, [d, et], [n, f]],
|
|
1293
1336
|
[
|
|
1294
1337
|
// LG
|
|
1295
1338
|
/((?=lg)?[vl]k\-?\d{3}) bui| 3\.[-\w; ]{10}lg?-([06cv9]{3,4})/i
|
|
1296
1339
|
],
|
|
1297
|
-
[
|
|
1340
|
+
[r, [d, Le], [n, f]],
|
|
1298
1341
|
[
|
|
1299
1342
|
/(lm(?:-?f100[nv]?|-[\w\.]+)(?= bui|\))|nexus [45])/i,
|
|
1300
|
-
/\blg[-e;\/ ]+(?!.*(?:browser|netcast|android tv|watch))(\w+)/i,
|
|
1343
|
+
/\blg[-e;\/ ]+(?!.*(?:browser|netcast|android tv|watch|webos))(\w+)/i,
|
|
1301
1344
|
/\blg-?([\d\w]+) bui/i
|
|
1302
1345
|
],
|
|
1303
|
-
[
|
|
1304
|
-
[
|
|
1305
|
-
// Lenovo
|
|
1306
|
-
/(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,
|
|
1307
|
-
/lenovo ?(b[68]0[08]0-?[hf]?|tab(?:[\w- ]+?)|tb[\w-]{6,7})( bui|;|\)|\/)/i
|
|
1308
|
-
],
|
|
1309
|
-
[o, [d, It], [n, f]],
|
|
1346
|
+
[r, [d, Le], [n, m]],
|
|
1310
1347
|
[
|
|
1311
1348
|
// Nokia
|
|
1312
1349
|
/(nokia) (t[12][01])/i
|
|
1313
1350
|
],
|
|
1314
|
-
[d,
|
|
1351
|
+
[d, r, [n, f]],
|
|
1315
1352
|
[
|
|
1316
1353
|
/(?:maemo|nokia).*(n900|lumia \d+|rm-\d+)/i,
|
|
1317
1354
|
/nokia[-_ ]?(([-\w\. ]*))/i
|
|
1318
1355
|
],
|
|
1319
|
-
[[
|
|
1356
|
+
[[r, /_/g, " "], [n, m], [d, "Nokia"]],
|
|
1320
1357
|
[
|
|
1321
1358
|
// Google
|
|
1322
1359
|
/(pixel (c|tablet))\b/i
|
|
1323
1360
|
// Google Pixel C/Tablet
|
|
1324
1361
|
],
|
|
1325
|
-
[
|
|
1362
|
+
[r, [d, X], [n, f]],
|
|
1326
1363
|
[
|
|
1327
|
-
/droid.+; (pixel[\daxl ]{0,6})(?: bui|\))/i
|
|
1328
1364
|
// Google Pixel
|
|
1365
|
+
/droid.+;(?: google)? (g(01[13]a|020[aem]|025[jn]|1b60|1f8f|2ybb|4s1m|576d|5nz6|8hhn|8vou|a02099|c15s|d1yq|e2ae|ec77|gh2x|kv4x|p4bc|pj41|r83y|tt9q|ur25|wvk6)|pixel[\d ]*a?( pro)?( xl)?( fold)?( \(5g\))?)( bui|\))/i
|
|
1366
|
+
],
|
|
1367
|
+
[r, [d, X], [n, m]],
|
|
1368
|
+
[
|
|
1369
|
+
/(google) (pixelbook( go)?)/i
|
|
1329
1370
|
],
|
|
1330
|
-
[
|
|
1371
|
+
[d, r],
|
|
1331
1372
|
[
|
|
1332
1373
|
// Sony
|
|
1333
|
-
/droid.+; (a?\d[0-2]{2}so|[c-g]\d{4}|so[-gl]\w+|xq
|
|
1374
|
+
/droid.+; (a?\d[0-2]{2}so|[c-g]\d{4}|so[-gl]\w+|xq-\w\w\d\d)(?= bui|\).+chrome\/(?![1-6]{0,1}\d\.))/i
|
|
1334
1375
|
],
|
|
1335
|
-
[
|
|
1376
|
+
[r, [d, ye], [n, m]],
|
|
1336
1377
|
[
|
|
1337
1378
|
/sony tablet [ps]/i,
|
|
1338
1379
|
/\b(?:sony)?sgp\w+(?: bui|\))/i
|
|
1339
1380
|
],
|
|
1340
|
-
[[
|
|
1341
|
-
[
|
|
1342
|
-
// OnePlus
|
|
1343
|
-
/ (kb2005|in20[12]5|be20[12][59])\b/i,
|
|
1344
|
-
/(?:one)?(?:plus)? (a\d0\d\d)(?: b|\))/i
|
|
1345
|
-
],
|
|
1346
|
-
[o, [d, Pt], [n, w]],
|
|
1381
|
+
[[r, "Xperia Tablet"], [d, ye], [n, f]],
|
|
1347
1382
|
[
|
|
1348
1383
|
// Amazon
|
|
1349
1384
|
/(alexa)webm/i,
|
|
@@ -1352,39 +1387,39 @@ var ms = "2.0.3", ct = 500, vt = "user-agent", ue = "", Ct = "?", _e = "function
|
|
|
1352
1387
|
/(kf[a-z]+)( bui|\)).+silk\//i
|
|
1353
1388
|
// Kindle Fire HD
|
|
1354
1389
|
],
|
|
1355
|
-
[
|
|
1390
|
+
[r, [d, Ue], [n, f]],
|
|
1356
1391
|
[
|
|
1357
1392
|
/((?:sd|kf)[0349hijorstuw]+)( bui|\)).+silk\//i
|
|
1358
1393
|
// Fire Phone
|
|
1359
1394
|
],
|
|
1360
|
-
[[
|
|
1395
|
+
[[r, /(.+)/g, "Fire Phone $1"], [d, Ue], [n, m]],
|
|
1361
1396
|
[
|
|
1362
1397
|
// BlackBerry
|
|
1363
1398
|
/(playbook);[-\w\),; ]+(rim)/i
|
|
1364
1399
|
// BlackBerry PlayBook
|
|
1365
1400
|
],
|
|
1366
|
-
[
|
|
1401
|
+
[r, d, [n, f]],
|
|
1367
1402
|
[
|
|
1368
1403
|
/\b((?:bb[a-f]|st[hv])100-\d)/i,
|
|
1369
1404
|
/\(bb10; (\w+)/i
|
|
1370
1405
|
// BlackBerry 10
|
|
1371
1406
|
],
|
|
1372
|
-
[
|
|
1407
|
+
[r, [d, Tt], [n, m]],
|
|
1373
1408
|
[
|
|
1374
1409
|
// Asus
|
|
1375
1410
|
/(?:\b|asus_)(transfo[prime ]{4,10} \w+|eeepc|slider \w+|nexus 7|padfone|p00[cj])/i
|
|
1376
1411
|
],
|
|
1377
|
-
[
|
|
1412
|
+
[r, [d, It], [n, f]],
|
|
1378
1413
|
[
|
|
1379
1414
|
/ (z[bes]6[027][012][km][ls]|zenfone \d\w?)\b/i
|
|
1380
1415
|
],
|
|
1381
|
-
[
|
|
1416
|
+
[r, [d, It], [n, m]],
|
|
1382
1417
|
[
|
|
1383
1418
|
// HTC
|
|
1384
1419
|
/(nexus 9)/i
|
|
1385
1420
|
// HTC Nexus 9
|
|
1386
1421
|
],
|
|
1387
|
-
[
|
|
1422
|
+
[r, [d, "HTC"], [n, f]],
|
|
1388
1423
|
[
|
|
1389
1424
|
/(htc)[-;_ ]{1,2}([\w ]+(?=\)| bui)|\w+)/i,
|
|
1390
1425
|
// HTC
|
|
@@ -1393,94 +1428,99 @@ var ms = "2.0.3", ct = 500, vt = "user-agent", ue = "", Ct = "?", _e = "function
|
|
|
1393
1428
|
/(alcatel|geeksphone|nexian|panasonic(?!(?:;|\.))|sony(?!-bra))[-_ ]?([-\w]*)/i
|
|
1394
1429
|
// Alcatel/GeeksPhone/Nexian/Panasonic/Sony
|
|
1395
1430
|
],
|
|
1396
|
-
[d, [
|
|
1431
|
+
[d, [r, /_/g, " "], [n, m]],
|
|
1397
1432
|
[
|
|
1398
1433
|
// TCL
|
|
1399
1434
|
/tcl (xess p17aa)/i,
|
|
1400
1435
|
/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
|
|
1401
1436
|
],
|
|
1402
|
-
[
|
|
1437
|
+
[r, [d, "TCL"], [n, f]],
|
|
1403
1438
|
[
|
|
1404
1439
|
/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
|
|
1405
1440
|
],
|
|
1406
|
-
[
|
|
1441
|
+
[r, [d, "TCL"], [n, m]],
|
|
1407
1442
|
[
|
|
1408
1443
|
// itel
|
|
1409
1444
|
/(itel) ((\w+))/i
|
|
1410
1445
|
],
|
|
1411
|
-
[[d,
|
|
1446
|
+
[[d, j], r, [n, L, { tablet: ["p10001l", "w7001"], "*": "mobile" }]],
|
|
1412
1447
|
[
|
|
1413
1448
|
// Acer
|
|
1414
1449
|
/droid.+; ([ab][1-7]-?[0178a]\d\d?)/i
|
|
1415
1450
|
],
|
|
1416
|
-
[
|
|
1451
|
+
[r, [d, "Acer"], [n, f]],
|
|
1417
1452
|
[
|
|
1418
1453
|
// Meizu
|
|
1419
1454
|
/droid.+; (m[1-5] note) bui/i,
|
|
1420
1455
|
/\bmz-([-\w]{2,})/i
|
|
1421
1456
|
],
|
|
1422
|
-
[
|
|
1457
|
+
[r, [d, "Meizu"], [n, m]],
|
|
1423
1458
|
[
|
|
1424
1459
|
// Ulefone
|
|
1425
1460
|
/; ((?:power )?armor(?:[\w ]{0,8}))(?: bui|\))/i
|
|
1426
1461
|
],
|
|
1427
|
-
[
|
|
1462
|
+
[r, [d, "Ulefone"], [n, m]],
|
|
1428
1463
|
[
|
|
1429
1464
|
// Energizer
|
|
1430
1465
|
/; (energy ?\w+)(?: bui|\))/i,
|
|
1431
1466
|
/; energizer ([\w ]+)(?: bui|\))/i
|
|
1432
1467
|
],
|
|
1433
|
-
[
|
|
1468
|
+
[r, [d, "Energizer"], [n, m]],
|
|
1434
1469
|
[
|
|
1435
1470
|
// Cat
|
|
1436
1471
|
/; cat (b35);/i,
|
|
1437
1472
|
/; (b15q?|s22 flip|s48c|s62 pro)(?: bui|\))/i
|
|
1438
1473
|
],
|
|
1439
|
-
[
|
|
1474
|
+
[r, [d, "Cat"], [n, m]],
|
|
1440
1475
|
[
|
|
1441
1476
|
// Smartfren
|
|
1442
1477
|
/((?:new )?andromax[\w- ]+)(?: bui|\))/i
|
|
1443
1478
|
],
|
|
1444
|
-
[
|
|
1479
|
+
[r, [d, "Smartfren"], [n, m]],
|
|
1445
1480
|
[
|
|
1446
1481
|
// Nothing
|
|
1447
|
-
/droid.+; (a(
|
|
1482
|
+
/droid.+; (a(in)?(0(15|59|6[35])|142)p?)/i
|
|
1448
1483
|
],
|
|
1449
|
-
[
|
|
1484
|
+
[r, [d, "Nothing"], [n, m]],
|
|
1450
1485
|
[
|
|
1451
1486
|
// Archos
|
|
1452
1487
|
/; (x67 5g|tikeasy \w+|ac[1789]\d\w+)( b|\))/i,
|
|
1453
1488
|
/archos ?(5|gamepad2?|([\w ]*[t1789]|hello) ?\d+[\w ]*)( b|\))/i
|
|
1454
1489
|
],
|
|
1455
|
-
[
|
|
1490
|
+
[r, [d, "Archos"], [n, f]],
|
|
1456
1491
|
[
|
|
1457
1492
|
/archos ([\w ]+)( b|\))/i,
|
|
1458
1493
|
/; (ac[3-6]\d\w{2,8})( b|\))/i
|
|
1459
1494
|
],
|
|
1460
|
-
[
|
|
1495
|
+
[r, [d, "Archos"], [n, m]],
|
|
1496
|
+
[
|
|
1497
|
+
// HMD
|
|
1498
|
+
/; (n159v)/i
|
|
1499
|
+
],
|
|
1500
|
+
[r, [d, "HMD"], [n, m]],
|
|
1461
1501
|
[
|
|
1462
1502
|
// MIXED
|
|
1463
1503
|
/(imo) (tab \w+)/i,
|
|
1464
1504
|
// IMO
|
|
1465
|
-
/(infinix) (x1101b
|
|
1466
|
-
// Infinix XPad
|
|
1505
|
+
/(infinix|tecno) (x1101b?|p904|dp(7c|8d|10a)( pro)?|p70[1-3]a?|p904|t1101)/i
|
|
1506
|
+
// Infinix XPad / Tecno
|
|
1467
1507
|
],
|
|
1468
|
-
[d,
|
|
1508
|
+
[d, r, [n, f]],
|
|
1469
1509
|
[
|
|
1470
|
-
/(blackberry|benq|palm(?=\-)|sonyericsson|acer|asus(?! zenw)|dell|jolla|meizu|motorola|polytron|
|
|
1471
|
-
// BlackBerry/BenQ/Palm/Sony-Ericsson/Acer/Asus/Dell/Meizu/Motorola/Polytron/
|
|
1472
|
-
/; (blu|hmd|imo|tcl)[_ ]([\w\+ ]+?)(?: bui|\)|; r)/i,
|
|
1473
|
-
// BLU/HMD/IMO/TCL
|
|
1510
|
+
/(blackberry|benq|palm(?=\-)|sonyericsson|acer|asus(?! zenw)|dell|jolla|meizu|motorola|polytron|tecno|micromax|advan)[-_ ]?([-\w]*)/i,
|
|
1511
|
+
// BlackBerry/BenQ/Palm/Sony-Ericsson/Acer/Asus/Dell/Meizu/Motorola/Polytron/Tecno/Micromax/Advan
|
|
1512
|
+
/; (blu|hmd|imo|infinix|lava|oneplus|tcl)[_ ]([\w\+ ]+?)(?: bui|\)|; r)/i,
|
|
1513
|
+
// BLU/HMD/IMO/Infinix/Lava/OnePlus/TCL
|
|
1474
1514
|
/(hp) ([\w ]+\w)/i,
|
|
1475
1515
|
// HP iPAQ
|
|
1476
1516
|
/(microsoft); (lumia[\w ]+)/i,
|
|
1477
1517
|
// Microsoft Lumia
|
|
1478
|
-
/(
|
|
1479
|
-
// Lenovo
|
|
1480
|
-
/(oppo) ?([\w ]+) bui/i
|
|
1518
|
+
/(oppo) ?([\w ]+) bui/i,
|
|
1481
1519
|
// OPPO
|
|
1520
|
+
/droid[^;]+; (philips)[_ ]([sv-x][\d]{3,4}[xz]?)/i
|
|
1521
|
+
// Philips
|
|
1482
1522
|
],
|
|
1483
|
-
[d,
|
|
1523
|
+
[d, r, [n, m]],
|
|
1484
1524
|
[
|
|
1485
1525
|
/(kobo)\s(ereader|touch)/i,
|
|
1486
1526
|
// Kobo
|
|
@@ -1489,45 +1529,47 @@ var ms = "2.0.3", ct = 500, vt = "user-agent", ue = "", Ct = "?", _e = "function
|
|
|
1489
1529
|
/(kindle)\/([\w\.]+)/i
|
|
1490
1530
|
// Kindle
|
|
1491
1531
|
],
|
|
1492
|
-
[d,
|
|
1532
|
+
[d, r, [n, f]],
|
|
1493
1533
|
[
|
|
1494
1534
|
/(surface duo)/i
|
|
1495
1535
|
// Surface Duo
|
|
1496
1536
|
],
|
|
1497
|
-
[
|
|
1537
|
+
[r, [d, Ze], [n, f]],
|
|
1498
1538
|
[
|
|
1499
1539
|
/droid [\d\.]+; (fp\du?)(?: b|\))/i
|
|
1500
1540
|
// Fairphone
|
|
1501
1541
|
],
|
|
1502
|
-
[
|
|
1542
|
+
[r, [d, "Fairphone"], [n, m]],
|
|
1503
1543
|
[
|
|
1504
1544
|
/((?:tegranote|shield t(?!.+d tv))[\w- ]*?)(?: b|\))/i
|
|
1505
1545
|
// Nvidia Tablets
|
|
1506
1546
|
],
|
|
1507
|
-
[
|
|
1547
|
+
[r, [d, tt], [n, f]],
|
|
1508
1548
|
[
|
|
1509
1549
|
/(sprint) (\w+)/i
|
|
1510
1550
|
// Sprint Phones
|
|
1511
1551
|
],
|
|
1512
|
-
[d,
|
|
1552
|
+
[d, r, [n, m]],
|
|
1513
1553
|
[
|
|
1514
1554
|
/(kin\.[onetw]{3})/i
|
|
1515
1555
|
// Microsoft Kin
|
|
1516
1556
|
],
|
|
1517
|
-
[[
|
|
1557
|
+
[[r, /\./g, " "], [d, Ze], [n, m]],
|
|
1518
1558
|
[
|
|
1519
1559
|
/droid.+; ([c6]+|et5[16]|mc[239][23]x?|vc8[03]x?)\)/i
|
|
1520
1560
|
// Zebra
|
|
1521
1561
|
],
|
|
1522
|
-
[
|
|
1562
|
+
[r, [d, at], [n, f]],
|
|
1523
1563
|
[
|
|
1524
1564
|
/droid.+; (ec30|ps20|tc[2-8]\d[kx])\)/i
|
|
1525
1565
|
],
|
|
1526
|
-
[
|
|
1566
|
+
[r, [d, at], [n, m]],
|
|
1527
1567
|
[
|
|
1528
1568
|
///////////////////
|
|
1529
1569
|
// SMARTTVS
|
|
1530
1570
|
///////////////////
|
|
1571
|
+
/(philips)[\w ]+tv/i,
|
|
1572
|
+
// Philips
|
|
1531
1573
|
/smart-tv.+(samsung)/i
|
|
1532
1574
|
// Samsung
|
|
1533
1575
|
],
|
|
@@ -1535,118 +1577,113 @@ var ms = "2.0.3", ct = 500, vt = "user-agent", ue = "", Ct = "?", _e = "function
|
|
|
1535
1577
|
[
|
|
1536
1578
|
/hbbtv.+maple;(\d+)/i
|
|
1537
1579
|
],
|
|
1538
|
-
[[
|
|
1580
|
+
[[r, /^/, "SmartTV"], [d, fe], [n, y]],
|
|
1539
1581
|
[
|
|
1582
|
+
/(vizio)(?: |.+model\/)(\w+-\w+)/i,
|
|
1583
|
+
// Vizio
|
|
1540
1584
|
/tcast.+(lg)e?. ([-\w]+)/i
|
|
1541
1585
|
// LG SmartTV
|
|
1542
1586
|
],
|
|
1543
|
-
[d,
|
|
1587
|
+
[d, r, [n, y]],
|
|
1544
1588
|
[
|
|
1545
1589
|
/(nux; netcast.+smarttv|lg (netcast\.tv-201\d|android tv))/i
|
|
1546
1590
|
],
|
|
1547
|
-
[[d,
|
|
1591
|
+
[[d, Le], [n, y]],
|
|
1548
1592
|
[
|
|
1549
1593
|
/(apple) ?tv/i
|
|
1550
1594
|
// Apple TV
|
|
1551
1595
|
],
|
|
1552
|
-
[d, [
|
|
1596
|
+
[d, [r, ee + " TV"], [n, y]],
|
|
1553
1597
|
[
|
|
1554
1598
|
/crkey.*devicetype\/chromecast/i
|
|
1555
1599
|
// Google Chromecast Third Generation
|
|
1556
1600
|
],
|
|
1557
|
-
[[
|
|
1601
|
+
[[r, V + " Third Generation"], [d, X], [n, y]],
|
|
1558
1602
|
[
|
|
1559
1603
|
/crkey.*devicetype\/([^/]*)/i
|
|
1560
1604
|
// Google Chromecast with specific device type
|
|
1561
1605
|
],
|
|
1562
|
-
[[
|
|
1606
|
+
[[r, /^/, "Chromecast "], [d, X], [n, y]],
|
|
1563
1607
|
[
|
|
1564
1608
|
/fuchsia.*crkey/i
|
|
1565
1609
|
// Google Chromecast Nest Hub
|
|
1566
1610
|
],
|
|
1567
|
-
[[
|
|
1611
|
+
[[r, V + " Nest Hub"], [d, X], [n, y]],
|
|
1568
1612
|
[
|
|
1569
1613
|
/crkey/i
|
|
1570
1614
|
// Google Chromecast, Linux-based or unknown
|
|
1571
1615
|
],
|
|
1572
|
-
[[
|
|
1616
|
+
[[r, V], [d, X], [n, y]],
|
|
1573
1617
|
[
|
|
1574
1618
|
/(portaltv)/i
|
|
1575
1619
|
// Facebook Portal TV
|
|
1576
1620
|
],
|
|
1577
|
-
[
|
|
1621
|
+
[r, [d, nt], [n, y]],
|
|
1578
1622
|
[
|
|
1579
1623
|
/droid.+aft(\w+)( bui|\))/i
|
|
1580
1624
|
// Fire TV
|
|
1581
1625
|
],
|
|
1582
|
-
[
|
|
1626
|
+
[r, [d, Ue], [n, y]],
|
|
1583
1627
|
[
|
|
1584
1628
|
/(shield \w+ tv)/i
|
|
1585
1629
|
// Nvidia Shield TV
|
|
1586
1630
|
],
|
|
1587
|
-
[
|
|
1631
|
+
[r, [d, tt], [n, y]],
|
|
1588
1632
|
[
|
|
1589
1633
|
/\(dtv[\);].+(aquos)/i,
|
|
1590
1634
|
/(aquos-tv[\w ]+)\)/i
|
|
1591
1635
|
// Sharp
|
|
1592
1636
|
],
|
|
1593
|
-
[
|
|
1637
|
+
[r, [d, Ot], [n, y]],
|
|
1594
1638
|
[
|
|
1595
1639
|
/(bravia[\w ]+)( bui|\))/i
|
|
1596
1640
|
// Sony
|
|
1597
1641
|
],
|
|
1598
|
-
[
|
|
1642
|
+
[r, [d, ye], [n, y]],
|
|
1599
1643
|
[
|
|
1600
1644
|
/(mi(tv|box)-?\w+) bui/i
|
|
1601
1645
|
// Xiaomi
|
|
1602
1646
|
],
|
|
1603
|
-
[
|
|
1647
|
+
[r, [d, it], [n, y]],
|
|
1604
1648
|
[
|
|
1605
1649
|
/Hbbtv.*(technisat) (.*);/i
|
|
1606
1650
|
// TechniSAT
|
|
1607
1651
|
],
|
|
1608
|
-
[d,
|
|
1652
|
+
[d, r, [n, y]],
|
|
1609
1653
|
[
|
|
1610
1654
|
/\b(roku)[\dx]*[\)\/]((?:dvp-)?[\d\.]*)/i,
|
|
1611
1655
|
// Roku
|
|
1612
1656
|
/hbbtv\/\d+\.\d+\.\d+ +\([\w\+ ]*; *([\w\d][^;]*);([^;]*)/i
|
|
1613
1657
|
// HbbTV devices
|
|
1614
1658
|
],
|
|
1615
|
-
[[d,
|
|
1659
|
+
[[d, /.+\/(\w+)/, "$1", L, { LG: "lge" }], [r, Ne], [n, y]],
|
|
1616
1660
|
[
|
|
1617
|
-
|
|
1618
|
-
|
|
1661
|
+
///////////////////
|
|
1662
|
+
// CONSOLES
|
|
1663
|
+
///////////////////
|
|
1664
|
+
/(playstation \w+)/i
|
|
1665
|
+
// Playstation
|
|
1619
1666
|
],
|
|
1620
|
-
[
|
|
1667
|
+
[r, [d, ye], [n, Me]],
|
|
1621
1668
|
[
|
|
1622
|
-
/\b(
|
|
1669
|
+
/\b(xbox(?: one)?(?!; xbox))[\); ]/i
|
|
1670
|
+
// Microsoft Xbox
|
|
1623
1671
|
],
|
|
1624
|
-
[[n,
|
|
1672
|
+
[r, [d, Ze], [n, Me]],
|
|
1625
1673
|
[
|
|
1626
|
-
///////////////////
|
|
1627
|
-
// CONSOLES
|
|
1628
|
-
///////////////////
|
|
1629
1674
|
/(ouya)/i,
|
|
1630
1675
|
// Ouya
|
|
1631
|
-
/(nintendo) (\w+)/i
|
|
1676
|
+
/(nintendo) (\w+)/i,
|
|
1632
1677
|
// Nintendo
|
|
1678
|
+
/(retroid) (pocket ([^\)]+))/i
|
|
1679
|
+
// Retroid Pocket
|
|
1633
1680
|
],
|
|
1634
|
-
[d,
|
|
1681
|
+
[d, r, [n, Me]],
|
|
1635
1682
|
[
|
|
1636
1683
|
/droid.+; (shield)( bui|\))/i
|
|
1637
1684
|
// Nvidia Portable
|
|
1638
1685
|
],
|
|
1639
|
-
[
|
|
1640
|
-
[
|
|
1641
|
-
/(playstation \w+)/i
|
|
1642
|
-
// Playstation
|
|
1643
|
-
],
|
|
1644
|
-
[o, [d, ye], [n, Me]],
|
|
1645
|
-
[
|
|
1646
|
-
/\b(xbox(?: one)?(?!; xbox))[\); ]/i
|
|
1647
|
-
// Microsoft Xbox
|
|
1648
|
-
],
|
|
1649
|
-
[o, [d, Je], [n, Me]],
|
|
1686
|
+
[r, [d, tt], [n, Me]],
|
|
1650
1687
|
[
|
|
1651
1688
|
///////////////////
|
|
1652
1689
|
// WEARABLES
|
|
@@ -1654,48 +1691,48 @@ var ms = "2.0.3", ct = 500, vt = "user-agent", ue = "", Ct = "?", _e = "function
|
|
|
1654
1691
|
/\b(sm-[lr]\d\d[0156][fnuw]?s?|gear live)\b/i
|
|
1655
1692
|
// Samsung Galaxy Watch
|
|
1656
1693
|
],
|
|
1657
|
-
[
|
|
1694
|
+
[r, [d, fe], [n, U]],
|
|
1658
1695
|
[
|
|
1659
1696
|
/((pebble))app/i,
|
|
1660
1697
|
// Pebble
|
|
1661
1698
|
/(asus|google|lg|oppo) ((pixel |zen)?watch[\w ]*)( bui|\))/i
|
|
1662
1699
|
// Asus ZenWatch / LG Watch / Pixel Watch
|
|
1663
1700
|
],
|
|
1664
|
-
[d,
|
|
1701
|
+
[d, r, [n, U]],
|
|
1665
1702
|
[
|
|
1666
1703
|
/(ow(?:19|20)?we?[1-3]{1,3})/i
|
|
1667
1704
|
// Oppo Watch
|
|
1668
1705
|
],
|
|
1669
|
-
[
|
|
1706
|
+
[r, [d, st], [n, U]],
|
|
1670
1707
|
[
|
|
1671
1708
|
/(watch)(?: ?os[,\/]|\d,\d\/)[\d\.]+/i
|
|
1672
1709
|
// Apple Watch
|
|
1673
1710
|
],
|
|
1674
|
-
[
|
|
1711
|
+
[r, [d, ee], [n, U]],
|
|
1675
1712
|
[
|
|
1676
1713
|
/(opwwe\d{3})/i
|
|
1677
1714
|
// OnePlus Watch
|
|
1678
1715
|
],
|
|
1679
|
-
[
|
|
1716
|
+
[r, [d, xt], [n, U]],
|
|
1680
1717
|
[
|
|
1681
1718
|
/(moto 360)/i
|
|
1682
1719
|
// Motorola 360
|
|
1683
1720
|
],
|
|
1684
|
-
[
|
|
1721
|
+
[r, [d, et], [n, U]],
|
|
1685
1722
|
[
|
|
1686
1723
|
/(smartwatch 3)/i
|
|
1687
1724
|
// Sony SmartWatch
|
|
1688
1725
|
],
|
|
1689
|
-
[
|
|
1726
|
+
[r, [d, ye], [n, U]],
|
|
1690
1727
|
[
|
|
1691
1728
|
/(g watch r)/i
|
|
1692
1729
|
// LG G Watch R
|
|
1693
1730
|
],
|
|
1694
|
-
[
|
|
1731
|
+
[r, [d, Le], [n, U]],
|
|
1695
1732
|
[
|
|
1696
1733
|
/droid.+; (wt63?0{2,3})\)/i
|
|
1697
1734
|
],
|
|
1698
|
-
[
|
|
1735
|
+
[r, [d, at], [n, U]],
|
|
1699
1736
|
[
|
|
1700
1737
|
///////////////////
|
|
1701
1738
|
// XR
|
|
@@ -1703,17 +1740,22 @@ var ms = "2.0.3", ct = 500, vt = "user-agent", ue = "", Ct = "?", _e = "function
|
|
|
1703
1740
|
/droid.+; (glass) \d/i
|
|
1704
1741
|
// Google Glass
|
|
1705
1742
|
],
|
|
1706
|
-
[
|
|
1743
|
+
[r, [d, X], [n, Oe]],
|
|
1707
1744
|
[
|
|
1708
|
-
/(pico) (
|
|
1745
|
+
/(pico) ([\w ]+) os\d/i
|
|
1709
1746
|
// Pico
|
|
1710
1747
|
],
|
|
1711
|
-
[d,
|
|
1748
|
+
[d, r, [n, Oe]],
|
|
1712
1749
|
[
|
|
1713
1750
|
/(quest( \d| pro)?s?).+vr/i
|
|
1714
1751
|
// Meta Quest
|
|
1715
1752
|
],
|
|
1716
|
-
[
|
|
1753
|
+
[r, [d, nt], [n, Oe]],
|
|
1754
|
+
[
|
|
1755
|
+
/mobile vr; rv.+firefox/i
|
|
1756
|
+
// Unidentifiable VR device using Firefox Reality / Wolvic
|
|
1757
|
+
],
|
|
1758
|
+
[[n, Oe]],
|
|
1717
1759
|
[
|
|
1718
1760
|
///////////////////
|
|
1719
1761
|
// EMBEDDED
|
|
@@ -1726,23 +1768,33 @@ var ms = "2.0.3", ct = 500, vt = "user-agent", ue = "", Ct = "?", _e = "function
|
|
|
1726
1768
|
/(aeobc)\b/i
|
|
1727
1769
|
// Echo Dot
|
|
1728
1770
|
],
|
|
1729
|
-
[
|
|
1771
|
+
[r, [d, Ue], [n, Se]],
|
|
1730
1772
|
[
|
|
1731
1773
|
/(homepod).+mac os/i
|
|
1732
1774
|
// Apple HomePod
|
|
1733
1775
|
],
|
|
1734
|
-
[
|
|
1776
|
+
[r, [d, ee], [n, Se]],
|
|
1735
1777
|
[
|
|
1736
1778
|
/windows iot/i
|
|
1779
|
+
// Unidentifiable embedded device using Windows IoT
|
|
1737
1780
|
],
|
|
1738
1781
|
[[n, Se]],
|
|
1739
1782
|
[
|
|
1740
1783
|
////////////////////
|
|
1741
1784
|
// MIXED (GENERIC)
|
|
1742
1785
|
///////////////////
|
|
1786
|
+
/droid.+; ([\w- ]+) (4k|android|smart|google)[- ]?tv/i
|
|
1787
|
+
// Unidentifiable SmartTV
|
|
1788
|
+
],
|
|
1789
|
+
[r, [n, y]],
|
|
1790
|
+
[
|
|
1791
|
+
/\b((4k|android|smart|opera)[- ]?tv|tv; rv:|large screen[\w ]+safari)\b/i
|
|
1792
|
+
],
|
|
1793
|
+
[[n, y]],
|
|
1794
|
+
[
|
|
1743
1795
|
/droid .+?; ([^;]+?)(?: bui|; wv\)|\) applew).+?(mobile|vr|\d) safari/i
|
|
1744
1796
|
],
|
|
1745
|
-
[
|
|
1797
|
+
[r, [n, L, { mobile: "Mobile", xr: "VR", "*": f }]],
|
|
1746
1798
|
[
|
|
1747
1799
|
/\b((tablet|tab)[;\/]|focus\/\d(?!.+mobile))/i
|
|
1748
1800
|
// Unidentifiable Tablet
|
|
@@ -1752,19 +1804,19 @@ var ms = "2.0.3", ct = 500, vt = "user-agent", ue = "", Ct = "?", _e = "function
|
|
|
1752
1804
|
/(phone|mobile(?:[;\/]| [ \w\/\.]*safari)|pda(?=.+windows ce))/i
|
|
1753
1805
|
// Unidentifiable Mobile
|
|
1754
1806
|
],
|
|
1755
|
-
[[n,
|
|
1807
|
+
[[n, m]],
|
|
1756
1808
|
[
|
|
1757
1809
|
/droid .+?; ([\w\. -]+)( bui|\))/i
|
|
1758
1810
|
// Generic Android Device
|
|
1759
1811
|
],
|
|
1760
|
-
[
|
|
1812
|
+
[r, [d, "Generic"]]
|
|
1761
1813
|
],
|
|
1762
1814
|
engine: [
|
|
1763
1815
|
[
|
|
1764
1816
|
/windows.+ edge\/([\w\.]+)/i
|
|
1765
1817
|
// EdgeHTML
|
|
1766
1818
|
],
|
|
1767
|
-
[u, [l,
|
|
1819
|
+
[u, [l, _e + "HTML"]],
|
|
1768
1820
|
[
|
|
1769
1821
|
/(arkweb)\/([\w\.]+)/i
|
|
1770
1822
|
// ArkWeb
|
|
@@ -1803,22 +1855,27 @@ var ms = "2.0.3", ct = 500, vt = "user-agent", ue = "", Ct = "?", _e = "function
|
|
|
1803
1855
|
os: [
|
|
1804
1856
|
[
|
|
1805
1857
|
// Windows
|
|
1806
|
-
/
|
|
1807
|
-
// Windows
|
|
1858
|
+
/(windows nt) (6\.[23]); arm/i
|
|
1859
|
+
// Windows RT
|
|
1860
|
+
],
|
|
1861
|
+
[[l, /N/, "R"], [u, L, Bt]],
|
|
1862
|
+
[
|
|
1863
|
+
/(windows (?:phone|mobile|iot))(?: os)?[\/ ]?([\d\.]*( se)?)/i,
|
|
1864
|
+
// Windows IoT/Mobile/Phone
|
|
1865
|
+
// Windows NT/3.1/95/98/ME/2000/XP/Vista/7/8/8.1/10/11
|
|
1866
|
+
/(windows)[\/ ](1[01]|2000|3\.1|7|8(\.1)?|9[58]|me|server 20\d\d( r2)?|vista|xp)/i
|
|
1808
1867
|
],
|
|
1809
1868
|
[l, u],
|
|
1810
1869
|
[
|
|
1811
|
-
/
|
|
1812
|
-
|
|
1870
|
+
/windows nt ?([\d\.\)]*)(?!.+xbox)/i,
|
|
1871
|
+
/\bwin(?=3| ?9|n)(?:nt| 9x )?([\d\.;]*)/i
|
|
1813
1872
|
],
|
|
1814
|
-
[
|
|
1873
|
+
[[u, /(;|\))/g, "", L, Bt], [l, ht]],
|
|
1815
1874
|
[
|
|
1816
|
-
/windows
|
|
1817
|
-
// Windows
|
|
1818
|
-
/windows[\/ ]([ntce\d\. ]+\w)(?!.+xbox)/i,
|
|
1819
|
-
/(?:win(?=3|9|n)|win 9x )([nt\d\.]+)/i
|
|
1875
|
+
/(windows ce)\/?([\d\.]*)/i
|
|
1876
|
+
// Windows CE
|
|
1820
1877
|
],
|
|
1821
|
-
[
|
|
1878
|
+
[l, u],
|
|
1822
1879
|
[
|
|
1823
1880
|
// iOS/macOS
|
|
1824
1881
|
/[adehimnop]{4,7}\b(?:.*os ([\w]+) like mac|; opera)/i,
|
|
@@ -1829,7 +1886,7 @@ var ms = "2.0.3", ct = 500, vt = "user-agent", ue = "", Ct = "?", _e = "function
|
|
|
1829
1886
|
[[u, /_/g, "."], [l, "iOS"]],
|
|
1830
1887
|
[
|
|
1831
1888
|
/(mac os x) ?([\w\. ]*)/i,
|
|
1832
|
-
/(macintosh|mac_powerpc\b)(?!.+haiku)/i
|
|
1889
|
+
/(macintosh|mac_powerpc\b)(?!.+(haiku|morphos))/i
|
|
1833
1890
|
// Mac OS
|
|
1834
1891
|
],
|
|
1835
1892
|
[[l, "macOS"], [u, /_/g, "."]],
|
|
@@ -1861,8 +1918,8 @@ var ms = "2.0.3", ct = 500, vt = "user-agent", ue = "", Ct = "?", _e = "function
|
|
|
1861
1918
|
[u, [l, V]],
|
|
1862
1919
|
[
|
|
1863
1920
|
// Mobile OSes
|
|
1864
|
-
/droid ([\w\.]+)\b.+(android[- ]x86
|
|
1865
|
-
// Android-x86
|
|
1921
|
+
/droid ([\w\.]+)\b.+(android[- ]x86)/i
|
|
1922
|
+
// Android-x86
|
|
1866
1923
|
],
|
|
1867
1924
|
[u, l],
|
|
1868
1925
|
[
|
|
@@ -1871,15 +1928,17 @@ var ms = "2.0.3", ct = 500, vt = "user-agent", ue = "", Ct = "?", _e = "function
|
|
|
1871
1928
|
],
|
|
1872
1929
|
[[l, /(.+)/, "$1 Touch"], u],
|
|
1873
1930
|
[
|
|
1931
|
+
/(harmonyos)[\/ ]?([\d\.]*)/i,
|
|
1932
|
+
// HarmonyOS
|
|
1874
1933
|
// Android/Blackberry/WebOS/QNX/Bada/RIM/KaiOS/Maemo/MeeGo/S40/Sailfish OS/OpenHarmony/Tizen
|
|
1875
|
-
/(android|bada|blackberry|kaios|maemo|meego|openharmony|qnx|rim tablet os|sailfish|series40|symbian|tizen
|
|
1934
|
+
/(android|bada|blackberry|kaios|maemo|meego|openharmony|qnx|rim tablet os|sailfish|series40|symbian|tizen)\w*[-\/\.; ]?([\d\.]*)/i
|
|
1876
1935
|
],
|
|
1877
1936
|
[l, u],
|
|
1878
1937
|
[
|
|
1879
1938
|
/\(bb(10);/i
|
|
1880
1939
|
// BlackBerry 10
|
|
1881
1940
|
],
|
|
1882
|
-
[u, [l,
|
|
1941
|
+
[u, [l, Tt]],
|
|
1883
1942
|
[
|
|
1884
1943
|
/(?:symbian ?os|symbos|s60(?=;)|series ?60)[-\/ ]?([\w\.]*)/i
|
|
1885
1944
|
// Symbian
|
|
@@ -1891,11 +1950,16 @@ var ms = "2.0.3", ct = 500, vt = "user-agent", ue = "", Ct = "?", _e = "function
|
|
|
1891
1950
|
],
|
|
1892
1951
|
[u, [l, ke + " OS"]],
|
|
1893
1952
|
[
|
|
1894
|
-
|
|
1895
|
-
/\b(?:hp)?wos(?:browser)?\/([\w\.]+)/i
|
|
1953
|
+
/\b(?:hp)?wos(?:browser)?\/([\w\.]+)/i,
|
|
1896
1954
|
// WebOS
|
|
1955
|
+
/webos(?:[ \/]?|\.tv-20(?=2[2-9]))(\d[\d\.]*)/i
|
|
1897
1956
|
],
|
|
1898
1957
|
[u, [l, "webOS"]],
|
|
1958
|
+
[
|
|
1959
|
+
/web0s;.+?(?:chr[o0]me|safari)\/(\d+)/i
|
|
1960
|
+
// https://webostv.developer.lge.com/develop/specifications/web-api-and-web-engine
|
|
1961
|
+
],
|
|
1962
|
+
[[u, L, { 25: "120", 24: "108", 23: "94", 22: "87", 6: "79", 5: "68", 4: "53", 3: "38", 2: "538", 1: "537", "*": "TV" }], [l, "webOS"]],
|
|
1899
1963
|
[
|
|
1900
1964
|
/watch(?: ?os[,\/]|\d,\d\/)([\d\.]+)/i
|
|
1901
1965
|
// watchOS
|
|
@@ -1925,256 +1989,253 @@ var ms = "2.0.3", ct = 500, vt = "user-agent", ue = "", Ct = "?", _e = "function
|
|
|
1925
1989
|
// Other
|
|
1926
1990
|
/\b(joli|palm)\b ?(?:os)?\/?([\w\.]*)/i,
|
|
1927
1991
|
// Joli/Palm
|
|
1928
|
-
/(mint)[\/\(\) ]?(\w*)/i,
|
|
1992
|
+
/linux.+(mint)[\/\(\) ]?([\w\.]*)/i,
|
|
1929
1993
|
// Mint
|
|
1930
|
-
/(mageia|vectorlinux)[; ]/i,
|
|
1931
|
-
// Mageia/VectorLinux
|
|
1932
|
-
/([kxln]?ubuntu|debian|suse|opensuse|gentoo|
|
|
1933
|
-
// Ubuntu/Debian/SUSE/Gentoo/
|
|
1934
|
-
/(
|
|
1935
|
-
//
|
|
1994
|
+
/(mageia|vectorlinux|fuchsia|arcaos|arch(?= ?linux))[;l ]([\d\.]*)/i,
|
|
1995
|
+
// Mageia/VectorLinux/Fuchsia/ArcaOS/Arch
|
|
1996
|
+
/([kxln]?ubuntu|debian|suse|opensuse|gentoo|slackware|fedora|mandriva|centos|pclinuxos|red ?hat|zenwalk|linpus|raspbian|plan 9|minix|risc os|contiki|deepin|manjaro|elementary os|sabayon|linspire|knoppix)(?: gnu[\/ ]linux)?(?: enterprise)?(?:[- ]linux)?(?:-gnu)?[-\/ ]?(?!chrom|package)([-\w\.]*)/i,
|
|
1997
|
+
// Ubuntu/Debian/SUSE/Gentoo/Slackware/Fedora/Mandriva/CentOS/PCLinuxOS/RedHat/Zenwalk/Linpus/Raspbian/Plan9/Minix/RISCOS/Contiki/Deepin/Manjaro/elementary/Sabayon/Linspire/Knoppix
|
|
1998
|
+
/((?:open)?solaris)[-\/ ]?([\w\.]*)/i,
|
|
1999
|
+
// Solaris
|
|
2000
|
+
/\b(aix)[; ]([1-9\.]{0,4})/i,
|
|
2001
|
+
// AIX
|
|
2002
|
+
/(hurd|linux|morphos)(?: (?:arm|x86|ppc)\w*| ?)([\w\.]*)/i,
|
|
2003
|
+
// Hurd/Linux/MorphOS
|
|
1936
2004
|
/(gnu) ?([\w\.]*)/i,
|
|
1937
2005
|
// GNU
|
|
1938
2006
|
/\b([-frentopcghs]{0,5}bsd|dragonfly)[\/ ]?(?!amd|[ix346]{1,2}86)([\w\.]*)/i,
|
|
1939
2007
|
// FreeBSD/NetBSD/OpenBSD/PC-BSD/GhostBSD/DragonFly
|
|
1940
|
-
/(haiku) (\
|
|
2008
|
+
/(haiku) ?(r\d)?/i
|
|
1941
2009
|
// Haiku
|
|
1942
2010
|
],
|
|
1943
2011
|
[l, u],
|
|
1944
2012
|
[
|
|
1945
|
-
/(sunos) ?([\
|
|
2013
|
+
/(sunos) ?([\d\.]*)/i
|
|
1946
2014
|
// Solaris
|
|
1947
2015
|
],
|
|
1948
2016
|
[[l, "Solaris"], u],
|
|
1949
2017
|
[
|
|
1950
|
-
|
|
1951
|
-
//
|
|
1952
|
-
/(aix) ((\d)(?=\.|\)| )[\w\.])*/i,
|
|
1953
|
-
// AIX
|
|
1954
|
-
/\b(beos|os\/2|amigaos|morphos|openvms|fuchsia|hp-ux|serenityos)/i,
|
|
1955
|
-
// BeOS/OS2/AmigaOS/MorphOS/OpenVMS/Fuchsia/HP-UX/SerenityOS
|
|
2018
|
+
/\b(beos|os\/2|amigaos|openvms|hp-ux|serenityos)/i,
|
|
2019
|
+
// BeOS/OS2/AmigaOS/OpenVMS/HP-UX/SerenityOS
|
|
1956
2020
|
/(unix) ?([\w\.]*)/i
|
|
1957
2021
|
// UNIX
|
|
1958
2022
|
],
|
|
1959
2023
|
[l, u]
|
|
1960
2024
|
]
|
|
1961
|
-
},
|
|
2025
|
+
}, Re = function() {
|
|
1962
2026
|
var i = { init: {}, isIgnore: {}, isIgnoreRgx: {}, toString: {} };
|
|
1963
|
-
return
|
|
1964
|
-
[S, [l, u,
|
|
1965
|
-
[
|
|
1966
|
-
[R, [n,
|
|
1967
|
-
[
|
|
1968
|
-
[
|
|
1969
|
-
]),
|
|
1970
|
-
[S, [u,
|
|
1971
|
-
[
|
|
1972
|
-
[
|
|
1973
|
-
]),
|
|
2027
|
+
return N.call(i.init, [
|
|
2028
|
+
[S, [l, u, Ie, n]],
|
|
2029
|
+
[D, [I]],
|
|
2030
|
+
[R, [n, r, d]],
|
|
2031
|
+
[O, [l, u]],
|
|
2032
|
+
[x, [l, u]]
|
|
2033
|
+
]), N.call(i.isIgnore, [
|
|
2034
|
+
[S, [u, Ie]],
|
|
2035
|
+
[O, [u]],
|
|
2036
|
+
[x, [u]]
|
|
2037
|
+
]), N.call(i.isIgnoreRgx, [
|
|
1974
2038
|
[S, / ?browser$/i],
|
|
1975
|
-
[
|
|
1976
|
-
]),
|
|
2039
|
+
[x, / ?os$/i]
|
|
2040
|
+
]), N.call(i.toString, [
|
|
1977
2041
|
[S, [l, u]],
|
|
1978
|
-
[
|
|
1979
|
-
[R, [d,
|
|
1980
|
-
[
|
|
1981
|
-
[
|
|
2042
|
+
[D, [I]],
|
|
2043
|
+
[R, [d, r]],
|
|
2044
|
+
[O, [l, u]],
|
|
2045
|
+
[x, [l, u]]
|
|
1982
2046
|
]), i;
|
|
1983
|
-
}(),
|
|
1984
|
-
var e =
|
|
1985
|
-
function
|
|
1986
|
-
|
|
2047
|
+
}(), As = function(i, t) {
|
|
2048
|
+
var e = Re.init[t], s = Re.isIgnore[t] || 0, a = Re.isIgnoreRgx[t] || 0, c = Re.toString[t] || 0;
|
|
2049
|
+
function o() {
|
|
2050
|
+
N.call(this, e);
|
|
1987
2051
|
}
|
|
1988
|
-
return
|
|
2052
|
+
return o.prototype.getItem = function() {
|
|
1989
2053
|
return i;
|
|
1990
|
-
},
|
|
1991
|
-
return z ? z.getHighEntropyValues(
|
|
1992
|
-
return i.setCH(new
|
|
2054
|
+
}, o.prototype.withClientHints = function() {
|
|
2055
|
+
return z ? z.getHighEntropyValues(Xt).then(function(p) {
|
|
2056
|
+
return i.setCH(new Jt(p, !1)).parseCH().get();
|
|
1993
2057
|
}) : i.parseCH().get();
|
|
1994
|
-
},
|
|
2058
|
+
}, o.prototype.withFeatureCheck = function() {
|
|
1995
2059
|
return i.detectFeature().get();
|
|
1996
|
-
}, t !=
|
|
2060
|
+
}, t != ie && (o.prototype.is = function(p) {
|
|
1997
2061
|
var h = !1;
|
|
1998
|
-
for (var
|
|
1999
|
-
if (this.hasOwnProperty(
|
|
2000
|
-
if (h = !0, p !=
|
|
2001
|
-
} else if (p ==
|
|
2062
|
+
for (var w in this)
|
|
2063
|
+
if (this.hasOwnProperty(w) && !pt(s, w) && j(a ? ge(a, this[w]) : this[w]) == j(a ? ge(a, p) : p)) {
|
|
2064
|
+
if (h = !0, p != W) break;
|
|
2065
|
+
} else if (p == W && h) {
|
|
2002
2066
|
h = !h;
|
|
2003
2067
|
break;
|
|
2004
2068
|
}
|
|
2005
2069
|
return h;
|
|
2006
|
-
},
|
|
2007
|
-
var p =
|
|
2008
|
-
for (var h in
|
|
2009
|
-
typeof this[
|
|
2010
|
-
return p ||
|
|
2011
|
-
}), z || (
|
|
2012
|
-
var h = this,
|
|
2013
|
-
for (var
|
|
2014
|
-
h.hasOwnProperty(
|
|
2070
|
+
}, o.prototype.toString = function() {
|
|
2071
|
+
var p = he;
|
|
2072
|
+
for (var h in c)
|
|
2073
|
+
typeof this[c[h]] !== W && (p += (p ? " " : he) + this[c[h]]);
|
|
2074
|
+
return p || W;
|
|
2075
|
+
}), z || (o.prototype.then = function(p) {
|
|
2076
|
+
var h = this, w = function() {
|
|
2077
|
+
for (var E in h)
|
|
2078
|
+
h.hasOwnProperty(E) && (this[E] = h[E]);
|
|
2015
2079
|
};
|
|
2016
|
-
|
|
2017
|
-
is:
|
|
2018
|
-
toString:
|
|
2080
|
+
w.prototype = {
|
|
2081
|
+
is: o.prototype.is,
|
|
2082
|
+
toString: o.prototype.toString
|
|
2019
2083
|
};
|
|
2020
|
-
var
|
|
2021
|
-
return p(
|
|
2022
|
-
}), new
|
|
2084
|
+
var g = new w();
|
|
2085
|
+
return p(g), g;
|
|
2086
|
+
}), new o();
|
|
2023
2087
|
};
|
|
2024
|
-
function
|
|
2025
|
-
if (i = i || {},
|
|
2026
|
-
|
|
2027
|
-
[
|
|
2028
|
-
[
|
|
2029
|
-
[
|
|
2030
|
-
[
|
|
2031
|
-
[
|
|
2032
|
-
[
|
|
2033
|
-
[
|
|
2034
|
-
[
|
|
2035
|
-
[
|
|
2088
|
+
function Jt(i, t) {
|
|
2089
|
+
if (i = i || {}, N.call(this, Xt), t)
|
|
2090
|
+
N.call(this, [
|
|
2091
|
+
[gt, ot(i[$])],
|
|
2092
|
+
[wt, ot(i[fs])],
|
|
2093
|
+
[m, /\?1/.test(i[Es])],
|
|
2094
|
+
[r, Ce(i[Cs])],
|
|
2095
|
+
[ae, Ce(i[Qt])],
|
|
2096
|
+
[mt, Ce(i[Ms])],
|
|
2097
|
+
[I, Ce(i[ys])],
|
|
2098
|
+
[J, ot(i[vs])],
|
|
2099
|
+
[qe, Ce(i[ks])]
|
|
2036
2100
|
]);
|
|
2037
2101
|
else
|
|
2038
2102
|
for (var e in i)
|
|
2039
|
-
this.hasOwnProperty(e) && typeof i[e] !==
|
|
2103
|
+
this.hasOwnProperty(e) && typeof i[e] !== W && (this[e] = i[e]);
|
|
2040
2104
|
}
|
|
2041
|
-
function
|
|
2105
|
+
function Dt(i, t, e, s) {
|
|
2042
2106
|
return this.get = function(a) {
|
|
2043
2107
|
return a ? this.data.hasOwnProperty(a) ? this.data[a] : void 0 : this.data;
|
|
2044
|
-
}, this.set = function(a,
|
|
2045
|
-
return this.data[a] =
|
|
2108
|
+
}, this.set = function(a, c) {
|
|
2109
|
+
return this.data[a] = c, this;
|
|
2046
2110
|
}, this.setCH = function(a) {
|
|
2047
2111
|
return this.uaCH = a, this;
|
|
2048
2112
|
}, this.detectFeature = function() {
|
|
2049
|
-
if (
|
|
2113
|
+
if (T && T.userAgent == this.ua)
|
|
2050
2114
|
switch (this.itemType) {
|
|
2051
2115
|
case S:
|
|
2052
|
-
|
|
2116
|
+
T.brave && typeof T.brave.isBrave == Fe && this.set(l, "Brave");
|
|
2053
2117
|
break;
|
|
2054
2118
|
case R:
|
|
2055
|
-
!this.get(n) && z && z[
|
|
2119
|
+
!this.get(n) && z && z[m] && this.set(n, m), this.get(r) == "Macintosh" && T && typeof T.standalone !== W && T.maxTouchPoints && T.maxTouchPoints > 2 && this.set(r, "iPad").set(n, f);
|
|
2056
2120
|
break;
|
|
2057
|
-
case
|
|
2058
|
-
!this.get(l) && z && z[
|
|
2121
|
+
case x:
|
|
2122
|
+
!this.get(l) && z && z[ae] && this.set(l, z[ae]);
|
|
2059
2123
|
break;
|
|
2060
|
-
case
|
|
2061
|
-
var a = this.data,
|
|
2062
|
-
return a[
|
|
2124
|
+
case ie:
|
|
2125
|
+
var a = this.data, c = function(o) {
|
|
2126
|
+
return a[o].getItem().detectFeature().get();
|
|
2063
2127
|
};
|
|
2064
|
-
this.set(S,
|
|
2128
|
+
this.set(S, c(S)).set(D, c(D)).set(R, c(R)).set(O, c(O)).set(x, c(x));
|
|
2065
2129
|
}
|
|
2066
2130
|
return this;
|
|
2067
2131
|
}, this.parseUA = function() {
|
|
2068
|
-
return this.itemType !=
|
|
2132
|
+
return this.itemType != ie && ct.call(this.data, this.ua, this.rgxMap), this.itemType == S && this.set(Ie, rt(this.get(u))), this;
|
|
2069
2133
|
}, this.parseCH = function() {
|
|
2070
|
-
var a = this.uaCH,
|
|
2134
|
+
var a = this.uaCH, c = this.rgxMap;
|
|
2071
2135
|
switch (this.itemType) {
|
|
2072
2136
|
case S:
|
|
2073
|
-
case
|
|
2074
|
-
var
|
|
2075
|
-
if (
|
|
2076
|
-
for (var h
|
|
2077
|
-
var
|
|
2078
|
-
this.itemType == S && !/not.a.brand/i.test(
|
|
2079
|
-
Chrome: "Google Chrome",
|
|
2080
|
-
Edge: "Microsoft Edge",
|
|
2081
|
-
"Chrome WebView": "Android WebView",
|
|
2082
|
-
"Chrome Headless": "HeadlessChrome",
|
|
2083
|
-
"Huawei Browser": "HuaweiBrowser",
|
|
2084
|
-
"MIUI Browser": "Miui Browser",
|
|
2085
|
-
"Opera Mobi": "OperaMobile",
|
|
2086
|
-
Yandex: "YaBrowser"
|
|
2087
|
-
}), this.set(l, g).set(u, m).set(Te, nt(m)), p = g), this.itemType == x && g == Ut && this.set(u, m);
|
|
2137
|
+
case O:
|
|
2138
|
+
var o = a[wt] || a[gt], p;
|
|
2139
|
+
if (o)
|
|
2140
|
+
for (var h = 0; h < o.length; h++) {
|
|
2141
|
+
var w = o[h].brand || o[h], g = o[h].version;
|
|
2142
|
+
this.itemType == S && !/not.a.brand/i.test(w) && (!p || /Chrom/.test(p) && w != Lt || p == _e && /WebView2/.test(w)) && (w = L(w, Ts), p = this.get(l), p && !/Chrom/.test(p) && /Chrom/.test(w) || this.set(l, w).set(u, g).set(Ie, rt(g)), p = w), this.itemType == O && w == Lt && this.set(u, g);
|
|
2088
2143
|
}
|
|
2089
2144
|
break;
|
|
2090
|
-
case
|
|
2091
|
-
var
|
|
2092
|
-
|
|
2145
|
+
case D:
|
|
2146
|
+
var E = a[I];
|
|
2147
|
+
E && (E && a[qe] == "64" && (E += "64"), ct.call(this.data, E + ";", c));
|
|
2093
2148
|
break;
|
|
2094
2149
|
case R:
|
|
2095
|
-
if (a[
|
|
2150
|
+
if (a[m] && this.set(n, m), a[r] && (this.set(r, a[r]), !this.get(n) || !this.get(d))) {
|
|
2096
2151
|
var A = {};
|
|
2097
|
-
|
|
2152
|
+
ct.call(A, "droid 9; " + a[r] + ")", c), !this.get(n) && A.type && this.set(n, A.type), !this.get(d) && A.vendor && this.set(d, A.vendor);
|
|
2098
2153
|
}
|
|
2099
|
-
if (a[
|
|
2154
|
+
if (a[J]) {
|
|
2100
2155
|
var G;
|
|
2101
|
-
if (typeof a[
|
|
2102
|
-
for (var
|
|
2103
|
-
G =
|
|
2156
|
+
if (typeof a[J] != "string")
|
|
2157
|
+
for (var me = 0; !G && me < a[J].length; )
|
|
2158
|
+
G = L(a[J][me++], _t);
|
|
2104
2159
|
else
|
|
2105
|
-
G =
|
|
2160
|
+
G = L(a[J], _t);
|
|
2106
2161
|
this.set(n, G);
|
|
2107
2162
|
}
|
|
2108
2163
|
break;
|
|
2109
|
-
case
|
|
2110
|
-
var
|
|
2111
|
-
if (
|
|
2112
|
-
var
|
|
2113
|
-
|
|
2164
|
+
case x:
|
|
2165
|
+
var F = a[ae];
|
|
2166
|
+
if (F) {
|
|
2167
|
+
var Y = a[mt];
|
|
2168
|
+
F == ht && (Y = parseInt(rt(Y), 10) >= 13 ? "11" : "10"), this.set(l, F).set(u, Y);
|
|
2114
2169
|
}
|
|
2115
|
-
this.get(l) ==
|
|
2170
|
+
this.get(l) == ht && a[r] == "Xbox" && this.set(l, "Xbox").set(u, void 0);
|
|
2116
2171
|
break;
|
|
2117
|
-
case
|
|
2118
|
-
var
|
|
2119
|
-
return
|
|
2172
|
+
case ie:
|
|
2173
|
+
var K = this.data, H = function(xe) {
|
|
2174
|
+
return K[xe].getItem().setCH(a).parseCH().get();
|
|
2120
2175
|
};
|
|
2121
|
-
this.set(S, H(S)).set(
|
|
2176
|
+
this.set(S, H(S)).set(D, H(D)).set(R, H(R)).set(O, H(O)).set(x, H(x));
|
|
2122
2177
|
}
|
|
2123
2178
|
return this;
|
|
2124
|
-
},
|
|
2179
|
+
}, N.call(this, [
|
|
2125
2180
|
["itemType", i],
|
|
2126
2181
|
["ua", t],
|
|
2127
2182
|
["uaCH", s],
|
|
2128
2183
|
["rgxMap", e],
|
|
2129
|
-
["data",
|
|
2184
|
+
["data", As(this, i)]
|
|
2130
2185
|
]), this;
|
|
2131
2186
|
}
|
|
2132
|
-
function
|
|
2133
|
-
if (typeof i ===
|
|
2134
|
-
|
|
2135
|
-
|
|
2136
|
-
|
|
2137
|
-
|
|
2138
|
-
|
|
2139
|
-
|
|
2140
|
-
|
|
2141
|
-
|
|
2187
|
+
function B(i, t, e) {
|
|
2188
|
+
if (typeof i === pe ? (De(i, !0) ? (typeof t === pe && (e = t), t = i) : (e = i, t = void 0), i = void 0) : typeof i === ut && !De(t, !0) && (e = t, t = void 0), e)
|
|
2189
|
+
if (typeof e.append === Fe) {
|
|
2190
|
+
var s = {};
|
|
2191
|
+
e.forEach(function(g, E) {
|
|
2192
|
+
s[String(E).toLowerCase()] = g;
|
|
2193
|
+
}), e = s;
|
|
2194
|
+
} else {
|
|
2195
|
+
var a = {};
|
|
2196
|
+
for (var c in e)
|
|
2197
|
+
e.hasOwnProperty(c) && (a[String(c).toLowerCase()] = e[c]);
|
|
2198
|
+
e = a;
|
|
2199
|
+
}
|
|
2200
|
+
if (!(this instanceof B))
|
|
2201
|
+
return new B(i, t, e).getResult();
|
|
2202
|
+
var o = typeof i === ut ? i : (
|
|
2142
2203
|
// Passed user-agent string
|
|
2143
|
-
e && e[
|
|
2204
|
+
e && e[Mt] ? e[Mt] : (
|
|
2144
2205
|
// User-Agent from passed headers
|
|
2145
|
-
|
|
2206
|
+
T && T.userAgent ? T.userAgent : (
|
|
2146
2207
|
// navigator.userAgent
|
|
2147
|
-
|
|
2208
|
+
he
|
|
2148
2209
|
)
|
|
2149
2210
|
)
|
|
2150
|
-
),
|
|
2151
|
-
return
|
|
2152
|
-
return new
|
|
2211
|
+
), p = new Jt(e, !0), h = t ? Is(Ft, t) : Ft, w = function(g) {
|
|
2212
|
+
return g == ie ? function() {
|
|
2213
|
+
return new Dt(g, o, h, p).set("ua", o).set(S, this.getBrowser()).set(D, this.getCPU()).set(R, this.getDevice()).set(O, this.getEngine()).set(x, this.getOS()).get();
|
|
2153
2214
|
} : function() {
|
|
2154
|
-
return new
|
|
2215
|
+
return new Dt(g, o, h[g], p).parseUA().get();
|
|
2155
2216
|
};
|
|
2156
2217
|
};
|
|
2157
|
-
return
|
|
2158
|
-
["getBrowser",
|
|
2159
|
-
["getCPU",
|
|
2160
|
-
["getDevice",
|
|
2161
|
-
["getEngine",
|
|
2162
|
-
["getOS",
|
|
2163
|
-
["getResult",
|
|
2218
|
+
return N.call(this, [
|
|
2219
|
+
["getBrowser", w(S)],
|
|
2220
|
+
["getCPU", w(D)],
|
|
2221
|
+
["getDevice", w(R)],
|
|
2222
|
+
["getEngine", w(O)],
|
|
2223
|
+
["getOS", w(x)],
|
|
2224
|
+
["getResult", w(ie)],
|
|
2164
2225
|
["getUA", function() {
|
|
2165
|
-
return
|
|
2226
|
+
return o;
|
|
2166
2227
|
}],
|
|
2167
|
-
["setUA", function(
|
|
2168
|
-
return
|
|
2228
|
+
["setUA", function(g) {
|
|
2229
|
+
return we(g) && (o = g.length > lt ? Ne(g, lt) : g), this;
|
|
2169
2230
|
}]
|
|
2170
|
-
]).setUA(
|
|
2231
|
+
]).setUA(o), this;
|
|
2171
2232
|
}
|
|
2172
|
-
|
|
2173
|
-
|
|
2174
|
-
|
|
2175
|
-
|
|
2176
|
-
|
|
2177
|
-
class
|
|
2233
|
+
B.VERSION = bs;
|
|
2234
|
+
B.BROWSER = We([l, u, Ie, n]);
|
|
2235
|
+
B.CPU = We([I]);
|
|
2236
|
+
B.DEVICE = We([r, d, n, Me, m, y, f, U, Se]);
|
|
2237
|
+
B.ENGINE = B.OS = We([l, u]);
|
|
2238
|
+
class Ps {
|
|
2178
2239
|
constructor(t, e) {
|
|
2179
2240
|
b(this, "config");
|
|
2180
2241
|
b(this, "sdkConfig");
|
|
@@ -2213,8 +2274,8 @@ class As {
|
|
|
2213
2274
|
}), this.showHistory = this.showHistory.bind(this), this.on("history", this.showHistory);
|
|
2214
2275
|
}
|
|
2215
2276
|
on(t, e, s) {
|
|
2216
|
-
const a = function(
|
|
2217
|
-
|
|
2277
|
+
const a = function(o) {
|
|
2278
|
+
o.data.message !== `kalamba:wrapper-rgs:${t}` && o.data.message !== `kalamba:wrapper:${t}` || e(o.data.payload);
|
|
2218
2279
|
};
|
|
2219
2280
|
window.addEventListener("message", a, s);
|
|
2220
2281
|
}
|
|
@@ -2242,7 +2303,7 @@ class As {
|
|
|
2242
2303
|
throw new Error("Not implemented");
|
|
2243
2304
|
}
|
|
2244
2305
|
}
|
|
2245
|
-
class
|
|
2306
|
+
class xs {
|
|
2246
2307
|
constructor(t) {
|
|
2247
2308
|
b(this, "socket", null);
|
|
2248
2309
|
b(this, "webSocketUrl");
|
|
@@ -2309,24 +2370,24 @@ function Os(i) {
|
|
|
2309
2370
|
var t;
|
|
2310
2371
|
return ((t = i == null ? void 0 : i.header) == null ? void 0 : t.name) === "Ping";
|
|
2311
2372
|
}
|
|
2312
|
-
function
|
|
2373
|
+
function Nt(i) {
|
|
2313
2374
|
var t;
|
|
2314
2375
|
return ((t = i == null ? void 0 : i.header) == null ? void 0 : t.name) === "RealityCheck";
|
|
2315
2376
|
}
|
|
2316
|
-
function
|
|
2377
|
+
function Ge(i) {
|
|
2317
2378
|
return i.header.name === "GameEvent";
|
|
2318
2379
|
}
|
|
2319
|
-
function
|
|
2320
|
-
return
|
|
2380
|
+
function Us(i) {
|
|
2381
|
+
return Ge(i) && i.body.event === "OPEN_GAME";
|
|
2321
2382
|
}
|
|
2322
|
-
function
|
|
2383
|
+
function Gt(i) {
|
|
2323
2384
|
return i.header.code !== 1;
|
|
2324
2385
|
}
|
|
2325
|
-
function
|
|
2326
|
-
return
|
|
2386
|
+
function Ls(i) {
|
|
2387
|
+
return Ge(i) && i.body.event.includes("_RESULT");
|
|
2327
2388
|
}
|
|
2328
|
-
var
|
|
2329
|
-
class Rs extends
|
|
2389
|
+
var ne, Te;
|
|
2390
|
+
class Rs extends xs {
|
|
2330
2391
|
constructor(e, s) {
|
|
2331
2392
|
const a = new URL(e.apiUrl);
|
|
2332
2393
|
a.searchParams.set("cageCode", e.cageCode), a.searchParams.set("gameCode", e.gameCode), a.searchParams.set("operatorCode", e.operatorCode), a.searchParams.set("playMode", e.playMode), a.searchParams.set("token", e.token), a.searchParams.set("username", e.username);
|
|
@@ -2360,13 +2421,13 @@ class Rs extends Ps {
|
|
|
2360
2421
|
*/
|
|
2361
2422
|
b(this, "seqId", 0);
|
|
2362
2423
|
b(this, "gameCode");
|
|
2363
|
-
M(this,
|
|
2364
|
-
M(this,
|
|
2424
|
+
M(this, ne);
|
|
2425
|
+
M(this, Te);
|
|
2365
2426
|
b(this, "onMessage", (e) => {
|
|
2366
2427
|
const s = Be(e);
|
|
2367
|
-
(
|
|
2428
|
+
(Ge(s) || Os(s) || Nt(s)) && this.sendAcknowledgement(s), Nt(s) && this.handleRealityCheck(s);
|
|
2368
2429
|
});
|
|
2369
|
-
this.eventListeners.realityCheck = [], this.gameCode = e.gameCode,
|
|
2430
|
+
this.eventListeners.realityCheck = [], this.gameCode = e.gameCode, v(this, ne, s.requestTimeoutMs), v(this, Te, s.gameVersion ?? "unknown"), this.addEventListener("message", this.onMessage);
|
|
2370
2431
|
}
|
|
2371
2432
|
handleRealityCheck(e) {
|
|
2372
2433
|
this.eventListeners.realityCheck.forEach((s) => {
|
|
@@ -2403,14 +2464,14 @@ class Rs extends Ps {
|
|
|
2403
2464
|
}
|
|
2404
2465
|
request(e, s) {
|
|
2405
2466
|
const a = this.buildPayload(e, s);
|
|
2406
|
-
return new Promise((
|
|
2407
|
-
setTimeout(() =>
|
|
2467
|
+
return new Promise((c, o) => {
|
|
2468
|
+
setTimeout(() => o({ type: "timeout" }), k(this, ne));
|
|
2408
2469
|
const p = (h) => {
|
|
2409
|
-
const
|
|
2470
|
+
const w = Be(h);
|
|
2410
2471
|
try {
|
|
2411
|
-
e.cId ===
|
|
2472
|
+
e.cId === w.header.cId && (this.removeEventListener("message", p), w.header.code === 1 ? c(w) : o({ message: w, type: "error" }));
|
|
2412
2473
|
} catch {
|
|
2413
|
-
|
|
2474
|
+
o({ message: w, type: "error" });
|
|
2414
2475
|
}
|
|
2415
2476
|
};
|
|
2416
2477
|
this.addEventListener("message", p), this.send(a);
|
|
@@ -2419,73 +2480,73 @@ class Rs extends Ps {
|
|
|
2419
2480
|
freeRounds(e) {
|
|
2420
2481
|
const s = this.buildHeader("ActivateFreeRound");
|
|
2421
2482
|
return this.request(s, e).then((a) => a.body).catch((a) => {
|
|
2422
|
-
var
|
|
2423
|
-
throw { data: (
|
|
2483
|
+
var c;
|
|
2484
|
+
throw { data: (c = a == null ? void 0 : a.message) == null ? void 0 : c.body, type: a.type };
|
|
2424
2485
|
});
|
|
2425
2486
|
}
|
|
2426
2487
|
async authenticate(e = !1) {
|
|
2427
2488
|
const s = this.buildHeader("Authenticate"), a = {
|
|
2428
2489
|
clientType: 3,
|
|
2429
|
-
version: k(this,
|
|
2490
|
+
version: k(this, Te),
|
|
2430
2491
|
reconnect: e
|
|
2431
2492
|
};
|
|
2432
|
-
return this.request(s, a).then((
|
|
2433
|
-
var
|
|
2434
|
-
throw { data: (
|
|
2493
|
+
return this.request(s, a).then((c) => c.body).catch((c) => {
|
|
2494
|
+
var o;
|
|
2495
|
+
throw { data: (o = c == null ? void 0 : c.message) == null ? void 0 : o.body, type: c.type };
|
|
2435
2496
|
});
|
|
2436
2497
|
}
|
|
2437
2498
|
async getBalance() {
|
|
2438
2499
|
const e = this.buildHeader("GetBalance"), s = {};
|
|
2439
2500
|
return this.request(e, s).then((a) => a.body).catch((a) => {
|
|
2440
|
-
var
|
|
2441
|
-
throw { data: (
|
|
2501
|
+
var c;
|
|
2502
|
+
throw { data: (c = a == null ? void 0 : a.message) == null ? void 0 : c.body, type: a.type };
|
|
2442
2503
|
});
|
|
2443
2504
|
}
|
|
2444
2505
|
async openGame() {
|
|
2445
2506
|
const e = this.buildHeader("OpenGame"), s = {
|
|
2446
2507
|
gameCode: this.gameCode
|
|
2447
2508
|
};
|
|
2448
|
-
return new Promise((a,
|
|
2449
|
-
const
|
|
2509
|
+
return new Promise((a, c) => {
|
|
2510
|
+
const o = (p) => {
|
|
2450
2511
|
const h = Be(p);
|
|
2451
|
-
|
|
2512
|
+
Us(h) ? (this.removeEventListener("message", o), a(h.body)) : Gt(h) && c({ data: h.body, type: "error" });
|
|
2452
2513
|
};
|
|
2453
|
-
this.addEventListener("message",
|
|
2514
|
+
this.addEventListener("message", o), this.request(e, s).catch(
|
|
2454
2515
|
(p) => {
|
|
2455
2516
|
var h;
|
|
2456
|
-
return
|
|
2517
|
+
return c({ data: (h = p == null ? void 0 : p.message) == null ? void 0 : h.body, type: p.type });
|
|
2457
2518
|
}
|
|
2458
2519
|
);
|
|
2459
2520
|
});
|
|
2460
2521
|
}
|
|
2461
2522
|
sendAcknowledgement(e) {
|
|
2462
|
-
const { name: s, cId: a } = e.header,
|
|
2463
|
-
this.send(
|
|
2523
|
+
const { name: s, cId: a } = e.header, c = this.buildHeader(s, a), o = this.buildPayload(c, {});
|
|
2524
|
+
this.send(o);
|
|
2464
2525
|
}
|
|
2465
2526
|
sendAction(e, s) {
|
|
2466
|
-
const a = this.buildHeader("GameAction"),
|
|
2527
|
+
const a = this.buildHeader("GameAction"), c = {
|
|
2467
2528
|
...this.getBodyExtras(e),
|
|
2468
2529
|
data: s
|
|
2469
2530
|
};
|
|
2470
|
-
return new Promise((
|
|
2471
|
-
const h = (
|
|
2472
|
-
const
|
|
2473
|
-
|
|
2531
|
+
return new Promise((o, p) => {
|
|
2532
|
+
const h = (w) => {
|
|
2533
|
+
const g = Be(w);
|
|
2534
|
+
Ge(g) && c.seqId === g.body.correlationSeqId && (this.removeEventListener("message", h), Ls(g) ? o(g.body) : Gt(g) && p({ data: g.body, type: "error" }));
|
|
2474
2535
|
};
|
|
2475
|
-
this.addEventListener("message", h), this.request(a,
|
|
2476
|
-
(
|
|
2477
|
-
var
|
|
2478
|
-
return p({ data: (
|
|
2536
|
+
this.addEventListener("message", h), this.request(a, c).catch(
|
|
2537
|
+
(w) => {
|
|
2538
|
+
var g;
|
|
2539
|
+
return p({ data: (g = w == null ? void 0 : w.message) == null ? void 0 : g.body, type: w.type });
|
|
2479
2540
|
}
|
|
2480
2541
|
);
|
|
2481
2542
|
});
|
|
2482
2543
|
}
|
|
2483
2544
|
setRequestTimeoutMs(e) {
|
|
2484
|
-
|
|
2545
|
+
v(this, ne, e);
|
|
2485
2546
|
}
|
|
2486
2547
|
}
|
|
2487
|
-
|
|
2488
|
-
const
|
|
2548
|
+
ne = new WeakMap(), Te = new WeakMap();
|
|
2549
|
+
const Bs = {
|
|
2489
2550
|
CA_BC: "CA",
|
|
2490
2551
|
CA_ON: "CA",
|
|
2491
2552
|
GER: "DE",
|
|
@@ -2494,10 +2555,10 @@ const Ls = {
|
|
|
2494
2555
|
US_NJ: "US",
|
|
2495
2556
|
USA: "US"
|
|
2496
2557
|
};
|
|
2497
|
-
function
|
|
2498
|
-
return !i || i === "NOT_APPLICABLE" ? null :
|
|
2558
|
+
function Ht(i) {
|
|
2559
|
+
return !i || i === "NOT_APPLICABLE" ? null : Bs[i] ?? i;
|
|
2499
2560
|
}
|
|
2500
|
-
function
|
|
2561
|
+
function Yt(i) {
|
|
2501
2562
|
const t = i.contract;
|
|
2502
2563
|
return t ? {
|
|
2503
2564
|
contract: {
|
|
@@ -2508,7 +2569,7 @@ function Jt(i) {
|
|
|
2508
2569
|
coinValueInCents: t.coinValueInCents,
|
|
2509
2570
|
country: t.countryCode,
|
|
2510
2571
|
currency: t.currencyCode,
|
|
2511
|
-
jurisdiction:
|
|
2572
|
+
jurisdiction: Ht(t.jurisdictionCode),
|
|
2512
2573
|
uiMessages: t.uiMessages,
|
|
2513
2574
|
username: t.username
|
|
2514
2575
|
}
|
|
@@ -2521,21 +2582,21 @@ function Jt(i) {
|
|
|
2521
2582
|
coinValueInCents: i.coinValueInCents,
|
|
2522
2583
|
country: i.countryCode,
|
|
2523
2584
|
currency: i.currencyCode,
|
|
2524
|
-
jurisdiction:
|
|
2585
|
+
jurisdiction: Ht(i.jurisdictionCode),
|
|
2525
2586
|
uiMessages: i.uiMessages,
|
|
2526
2587
|
username: i.username
|
|
2527
2588
|
}
|
|
2528
2589
|
};
|
|
2529
2590
|
}
|
|
2530
|
-
function
|
|
2591
|
+
function Zt(i) {
|
|
2531
2592
|
var t, e;
|
|
2532
2593
|
return {
|
|
2533
2594
|
// SDK error codes are the same as RGS error codes so we don't need any mapping here
|
|
2534
|
-
code: ((t = i.data) == null ? void 0 : t.code) ??
|
|
2595
|
+
code: ((t = i.data) == null ? void 0 : t.code) ?? se.UNKNOWN,
|
|
2535
2596
|
details: (e = i.data) == null ? void 0 : e.details
|
|
2536
2597
|
};
|
|
2537
2598
|
}
|
|
2538
|
-
function
|
|
2599
|
+
function es(i, t, e) {
|
|
2539
2600
|
const s = t.contract;
|
|
2540
2601
|
if (!s) {
|
|
2541
2602
|
const a = t.data;
|
|
@@ -2561,22 +2622,22 @@ function Zt(i, t, e) {
|
|
|
2561
2622
|
coins: t.balance,
|
|
2562
2623
|
version: t.balanceVersion
|
|
2563
2624
|
},
|
|
2564
|
-
freeRounds: (a.FREE_ROUNDS ?? []).map((
|
|
2625
|
+
freeRounds: (a.FREE_ROUNDS ?? []).map((c) => ({
|
|
2565
2626
|
conf: {
|
|
2566
|
-
base:
|
|
2567
|
-
multiplier:
|
|
2568
|
-
numAwarded:
|
|
2627
|
+
base: c.conf.baseBet,
|
|
2628
|
+
multiplier: c.conf.betMultiplier,
|
|
2629
|
+
numAwarded: c.conf.numAwarded
|
|
2569
2630
|
},
|
|
2570
2631
|
data: {
|
|
2571
|
-
numPlayed:
|
|
2572
|
-
win:
|
|
2573
|
-
numLeft:
|
|
2632
|
+
numPlayed: c.data.numPlayed,
|
|
2633
|
+
win: c.data.winAmount,
|
|
2634
|
+
numLeft: c.data.numLeft
|
|
2574
2635
|
},
|
|
2575
|
-
id:
|
|
2576
|
-
rejectable:
|
|
2577
|
-
skippable:
|
|
2578
|
-
status:
|
|
2579
|
-
type:
|
|
2636
|
+
id: c.id,
|
|
2637
|
+
rejectable: c.rejectable,
|
|
2638
|
+
skippable: c.skippable,
|
|
2639
|
+
status: c.status,
|
|
2640
|
+
type: c.type
|
|
2580
2641
|
})),
|
|
2581
2642
|
gameModel: a.additionalConfigData.gameModelFile,
|
|
2582
2643
|
metaData: a.gameConfigData.metaData,
|
|
@@ -2655,15 +2716,15 @@ function Zt(i, t, e) {
|
|
|
2655
2716
|
data: e ? e(t.opaqueGameServerToUi) : t.opaqueGameServerToUi
|
|
2656
2717
|
};
|
|
2657
2718
|
}
|
|
2658
|
-
function
|
|
2719
|
+
function ts(i) {
|
|
2659
2720
|
var t, e;
|
|
2660
2721
|
return {
|
|
2661
2722
|
// SDK error codes are the same as RGS error codes so we don't need any mapping here
|
|
2662
|
-
code: ((t = i.data) == null ? void 0 : t.code) ??
|
|
2723
|
+
code: ((t = i.data) == null ? void 0 : t.code) ?? se.UNKNOWN,
|
|
2663
2724
|
details: (e = i.data) == null ? void 0 : e.details
|
|
2664
2725
|
};
|
|
2665
2726
|
}
|
|
2666
|
-
function
|
|
2727
|
+
function ss(i, t) {
|
|
2667
2728
|
const e = i.contract;
|
|
2668
2729
|
if (!e) {
|
|
2669
2730
|
const s = i.data;
|
|
@@ -2763,22 +2824,22 @@ function ts(i, t) {
|
|
|
2763
2824
|
data: t ? t(i.opaqueGameServerToUi) : i.opaqueGameServerToUi
|
|
2764
2825
|
};
|
|
2765
2826
|
}
|
|
2766
|
-
function
|
|
2827
|
+
function is(i) {
|
|
2767
2828
|
var t, e;
|
|
2768
2829
|
return {
|
|
2769
2830
|
// SDK error codes are the same as RGS error codes so we don't need any mapping here
|
|
2770
|
-
code: ((t = i.data) == null ? void 0 : t.code) ??
|
|
2831
|
+
code: ((t = i.data) == null ? void 0 : t.code) ?? se.UNKNOWN,
|
|
2771
2832
|
details: (e = i.data) == null ? void 0 : e.details
|
|
2772
2833
|
};
|
|
2773
2834
|
}
|
|
2774
|
-
const
|
|
2775
|
-
parseAuthenticateResponse:
|
|
2776
|
-
parseAuthenticateError:
|
|
2777
|
-
parseOpenGameResponse:
|
|
2778
|
-
parseOpenGameError:
|
|
2779
|
-
parsePlayResponse:
|
|
2780
|
-
parsePlayError:
|
|
2781
|
-
},
|
|
2835
|
+
const ri = {
|
|
2836
|
+
parseAuthenticateResponse: Yt,
|
|
2837
|
+
parseAuthenticateError: Zt,
|
|
2838
|
+
parseOpenGameResponse: es,
|
|
2839
|
+
parseOpenGameError: ts,
|
|
2840
|
+
parsePlayResponse: ss,
|
|
2841
|
+
parsePlayError: is
|
|
2842
|
+
}, _s = {
|
|
2782
2843
|
aze: "az",
|
|
2783
2844
|
bul: "bg",
|
|
2784
2845
|
chi: "zh",
|
|
@@ -2811,8 +2872,8 @@ const oi = {
|
|
|
2811
2872
|
tur: "tr",
|
|
2812
2873
|
ukr: "uk",
|
|
2813
2874
|
vie: "vi"
|
|
2814
|
-
}, { device:
|
|
2815
|
-
class
|
|
2875
|
+
}, { device: Fs } = B(navigator.userAgent), Ds = P("KalambaBullseyePlugin", "color:#000000;font-weight:bold;");
|
|
2876
|
+
class ci extends Ps {
|
|
2816
2877
|
constructor(...e) {
|
|
2817
2878
|
super(...e);
|
|
2818
2879
|
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
@@ -2832,9 +2893,9 @@ class ri extends As {
|
|
|
2832
2893
|
messageCode: "TOO_MANY_OPEN_GAMES",
|
|
2833
2894
|
messageKey: "RgsError.TOO_MANY_OPEN_GAMES"
|
|
2834
2895
|
}) : s.code === 1011 ? this.error || this.send("error", { type: "CLOSE", messageCode: "UNKNOWN", messageKey: "RgsError.UNKNOWN" }) : this.reconnect();
|
|
2835
|
-
}), ["mobile", "tablet"].includes(
|
|
2896
|
+
}), ["mobile", "tablet"].includes(Fs.type ?? "") && document.addEventListener("visibilitychange", async () => {
|
|
2836
2897
|
document.hidden || (this.socket.socket ? this.socket.socket && [WebSocket.CONNECTING, WebSocket.OPEN].includes(this.socket.socket.readyState) && this.socket.close() : this.reconnect());
|
|
2837
|
-
})), this.socket.addEventListener("error", (s) =>
|
|
2898
|
+
})), this.socket.addEventListener("error", (s) => Ds("error", s)), this.socket.addEventListener("realityCheck", (s) => {
|
|
2838
2899
|
this.send("realityCheck", s);
|
|
2839
2900
|
});
|
|
2840
2901
|
}
|
|
@@ -2847,82 +2908,80 @@ class ri extends As {
|
|
|
2847
2908
|
}
|
|
2848
2909
|
async openGame() {
|
|
2849
2910
|
var H, xe;
|
|
2850
|
-
const e = new URLSearchParams(window.location.search), s = e.get("apiUrl"), a = e.get("cageCode"),
|
|
2851
|
-
this.initialize({ apiUrl: s, cageCode: a, gameCode:
|
|
2911
|
+
const e = new URLSearchParams(window.location.search), s = e.get("apiUrl"), a = e.get("cageCode"), c = e.get("gameCode"), o = e.get("operatorCode"), p = e.get("playMode"), h = e.get("token"), w = e.get("username"), g = e.get("gameHistoryUrl"), E = e.get("homeUrl") ?? void 0, A = e.get("cashierUrl") ?? void 0;
|
|
2912
|
+
this.initialize({ apiUrl: s, cageCode: a, gameCode: c, operatorCode: o, playMode: p, token: h, username: w });
|
|
2852
2913
|
try {
|
|
2853
2914
|
await this.socket.connect();
|
|
2854
2915
|
} catch {
|
|
2855
|
-
throw { type: "error", data: { code:
|
|
2916
|
+
throw { type: "error", data: { code: se.CONNECTION_ERROR } };
|
|
2856
2917
|
}
|
|
2857
2918
|
let G;
|
|
2858
2919
|
try {
|
|
2859
2920
|
G = await this.socket.authenticate();
|
|
2860
|
-
} catch (
|
|
2861
|
-
throw { type:
|
|
2921
|
+
} catch (Q) {
|
|
2922
|
+
throw { type: Q.type, data: Q.type === "error" ? Zt(Q.data) : void 0 };
|
|
2862
2923
|
}
|
|
2863
|
-
let
|
|
2924
|
+
let me;
|
|
2864
2925
|
try {
|
|
2865
|
-
|
|
2866
|
-
} catch (
|
|
2867
|
-
throw { type:
|
|
2926
|
+
me = await this.socket.openGame();
|
|
2927
|
+
} catch (Q) {
|
|
2928
|
+
throw { type: Q.type, data: Q.type === "error" ? ts(Q.data) : void 0 };
|
|
2868
2929
|
}
|
|
2869
|
-
const
|
|
2930
|
+
const F = Yt(G), Y = es(
|
|
2870
2931
|
G,
|
|
2871
|
-
|
|
2872
|
-
this.config.dataDecoder &&
|
|
2932
|
+
me,
|
|
2933
|
+
this.config.dataDecoder && yt[this.config.dataDecoder]
|
|
2873
2934
|
);
|
|
2874
2935
|
this.sdkConfig.api = {
|
|
2875
2936
|
...this.sdkConfig.api,
|
|
2876
2937
|
brand: a,
|
|
2877
|
-
game:
|
|
2878
|
-
integration:
|
|
2879
|
-
jurisdiction:
|
|
2938
|
+
game: c,
|
|
2939
|
+
integration: o,
|
|
2940
|
+
jurisdiction: F.contract.jurisdiction,
|
|
2880
2941
|
playMode: p,
|
|
2881
|
-
user:
|
|
2942
|
+
user: F.contract.username,
|
|
2882
2943
|
integrationData: {
|
|
2883
2944
|
token: h
|
|
2884
2945
|
},
|
|
2885
|
-
country:
|
|
2886
|
-
currency:
|
|
2887
|
-
coinValueInCents:
|
|
2888
|
-
gameHistoryUrl:
|
|
2889
|
-
homeUrl:
|
|
2946
|
+
country: F.contract.country,
|
|
2947
|
+
currency: F.contract.currency,
|
|
2948
|
+
coinValueInCents: F.contract.coinValueInCents,
|
|
2949
|
+
gameHistoryUrl: g,
|
|
2950
|
+
homeUrl: E,
|
|
2890
2951
|
cashierUrl: A,
|
|
2891
|
-
backendSessionId:
|
|
2892
|
-
lastRoundId: K.contract.roundId
|
|
2952
|
+
backendSessionId: Y.contract.sessionId
|
|
2893
2953
|
};
|
|
2894
|
-
const
|
|
2895
|
-
return
|
|
2954
|
+
const K = (xe = (H = e.get("languageCode")) == null ? void 0 : H.split("_")) == null ? void 0 : xe[0];
|
|
2955
|
+
return K && (this.sdkConfig.ui.language = K.length === 3 ? _s[K] ?? K : K), Y;
|
|
2896
2956
|
}
|
|
2897
2957
|
async play(e) {
|
|
2898
2958
|
for (; !this.socket.socket; )
|
|
2899
2959
|
await new Promise((A) => setTimeout(() => A(), 500));
|
|
2900
2960
|
const {
|
|
2901
|
-
contract: { bet: s, forcedOutcomes: a, ...
|
|
2902
|
-
extra:
|
|
2903
|
-
payloadToInject: p
|
|
2904
|
-
|
|
2905
|
-
} = e, g = this.config.dataEncoder && os[this.config.dataEncoder], m = {
|
|
2961
|
+
contract: { bet: s, forcedOutcomes: a, ...c },
|
|
2962
|
+
extra: o,
|
|
2963
|
+
payloadToInject: p
|
|
2964
|
+
} = e, h = this.config.dataEncoder && rs[this.config.dataEncoder], w = s === null ? "BG_ACTION" : "SPIN", g = {
|
|
2906
2965
|
bet: s ? { baseBet: s.base, betMultiplier: s.multiplier } : void 0,
|
|
2907
2966
|
forcedOutcomes: a,
|
|
2908
2967
|
// TODO: get rid of contractRest - it' a legacy from old RGS
|
|
2909
|
-
...
|
|
2968
|
+
...c,
|
|
2910
2969
|
...p,
|
|
2911
|
-
opaqueUiToGameServer:
|
|
2970
|
+
opaqueUiToGameServer: h ? h(o) : o
|
|
2912
2971
|
};
|
|
2913
|
-
let
|
|
2972
|
+
let E;
|
|
2914
2973
|
try {
|
|
2915
|
-
|
|
2974
|
+
E = await this.socket.sendAction(w, g);
|
|
2916
2975
|
} catch (A) {
|
|
2917
|
-
throw { type: A.type, data: A.type === "error" ?
|
|
2976
|
+
throw { type: A.type, data: A.type === "error" ? is(A.data) : void 0 };
|
|
2918
2977
|
}
|
|
2919
|
-
return
|
|
2978
|
+
return ss(E, this.config.dataDecoder && yt[this.config.dataDecoder]);
|
|
2920
2979
|
}
|
|
2921
2980
|
async freeRounds(e) {
|
|
2922
2981
|
try {
|
|
2923
2982
|
await this.socket.freeRounds(e);
|
|
2924
2983
|
} catch {
|
|
2925
|
-
throw { type: "error", data: { code:
|
|
2984
|
+
throw { type: "error", data: { code: se.UNKNOWN } };
|
|
2926
2985
|
}
|
|
2927
2986
|
return e;
|
|
2928
2987
|
}
|
|
@@ -2930,18 +2989,18 @@ class ri extends As {
|
|
|
2930
2989
|
try {
|
|
2931
2990
|
return { balance: (await this.socket.getBalance()).balance };
|
|
2932
2991
|
} catch {
|
|
2933
|
-
throw { type: "error", data: { code:
|
|
2992
|
+
throw { type: "error", data: { code: se.UNKNOWN } };
|
|
2934
2993
|
}
|
|
2935
2994
|
}
|
|
2936
2995
|
async showHistory() {
|
|
2937
2996
|
const {
|
|
2938
|
-
api: { game: e, integration: s, integrationData: a, jurisdiction:
|
|
2997
|
+
api: { game: e, integration: s, integrationData: a, jurisdiction: c, user: o, gameHistoryUrl: p },
|
|
2939
2998
|
ui: { language: h }
|
|
2940
|
-
} = this.sdkConfig,
|
|
2941
|
-
|
|
2999
|
+
} = this.sdkConfig, w = o.replace(/^user_/, "").replace(new RegExp(`_${s}$`), ""), g = new URL(window.location.href);
|
|
3000
|
+
g.hostname = g.hostname.replace(/^v\./, "").replace(/^play\./, "history."), g.pathname = g.pathname.replace(/(\/[0-9]+\.[0-9]+\.[0-9]+)?\/wrapper\.html/, "/list/index.html"), g.search = "", g.searchParams.set("apiUrl", new URL(p).origin), g.searchParams.set("gameCode", e), c && g.searchParams.set("jurisdiction", c), g.searchParams.set("operatorCode", s), g.searchParams.set("token", a.token), g.searchParams.set("username", w), g.searchParams.set("languageCode", h), this.config.gameHistoryUrl && g.searchParams.set("gameHistoryUrl", this.config.gameHistoryUrl), window.open(g.toString(), "_blank");
|
|
2942
3001
|
}
|
|
2943
3002
|
}
|
|
2944
|
-
class
|
|
3003
|
+
class Ns {
|
|
2945
3004
|
constructor(t, e, s) {
|
|
2946
3005
|
b(this, "trackers");
|
|
2947
3006
|
b(this, "config");
|
|
@@ -2949,8 +3008,8 @@ class Fs {
|
|
|
2949
3008
|
this.trackers = t, this.config = e, this.sdkConfig = s;
|
|
2950
3009
|
}
|
|
2951
3010
|
on(t, e, s) {
|
|
2952
|
-
const a = function(
|
|
2953
|
-
|
|
3011
|
+
const a = function(o) {
|
|
3012
|
+
o.data.message !== `kalamba:wrapper-telemetry:${t}` && o.data.message !== `kalamba:wrapper:${t}` || e(o.data.payload);
|
|
2954
3013
|
};
|
|
2955
3014
|
window.addEventListener("message", a, s);
|
|
2956
3015
|
}
|
|
@@ -2958,14 +3017,14 @@ class Fs {
|
|
|
2958
3017
|
this.trackers.forEach((s) => s.track(t, e));
|
|
2959
3018
|
}
|
|
2960
3019
|
}
|
|
2961
|
-
function
|
|
3020
|
+
function Vt(i) {
|
|
2962
3021
|
return i.reduce((t, e) => t + e, 0);
|
|
2963
3022
|
}
|
|
2964
|
-
function
|
|
2965
|
-
const t = i.length, e =
|
|
3023
|
+
function Gs(i) {
|
|
3024
|
+
const t = i.length, e = Vt(i) / t, s = i.map((c) => Math.pow(c - e, 2)), a = Vt(s) / t;
|
|
2966
3025
|
return Math.sqrt(a);
|
|
2967
3026
|
}
|
|
2968
|
-
class
|
|
3027
|
+
class zt {
|
|
2969
3028
|
constructor() {
|
|
2970
3029
|
b(this, "rafId", -1);
|
|
2971
3030
|
b(this, "startTime", 0);
|
|
@@ -2973,11 +3032,11 @@ class Vt {
|
|
|
2973
3032
|
b(this, "frames", []);
|
|
2974
3033
|
b(this, "calculateFPS", () => {
|
|
2975
3034
|
const t = Math.floor((this.stopTime - this.startTime) / 1e3);
|
|
2976
|
-
return this.frames.map((e) => Math.floor((e - this.startTime) / 1e3)).reduce((e, s, a,
|
|
3035
|
+
return this.frames.map((e) => Math.floor((e - this.startTime) / 1e3)).reduce((e, s, a, c) => (c[a] !== c[a - 1] ? e.push(1) : e[e.length - 1]++, e), []).slice(0, t);
|
|
2977
3036
|
});
|
|
2978
3037
|
b(this, "getReport", () => {
|
|
2979
|
-
const t = this.calculateFPS(), e = Math.floor(this.frames.length / ((this.stopTime - this.startTime) / 1e3)), s = t.length > 0 ? Math.max(...t) : e, a = t.length > 0 ? Math.min(...t) : e,
|
|
2980
|
-
return { fpsAvg: e, fpsMax: s, fpsMin: a, fpsStdDev:
|
|
3038
|
+
const t = this.calculateFPS(), e = Math.floor(this.frames.length / ((this.stopTime - this.startTime) / 1e3)), s = t.length > 0 ? Math.max(...t) : e, a = t.length > 0 ? Math.min(...t) : e, c = t.length > 0 ? Gs(t) : 0;
|
|
3039
|
+
return { fpsAvg: e, fpsMax: s, fpsMin: a, fpsStdDev: c };
|
|
2981
3040
|
});
|
|
2982
3041
|
b(this, "start", () => {
|
|
2983
3042
|
this.startTime = Date.now(), this.frames = [], this.trackFrames();
|
|
@@ -2990,8 +3049,8 @@ class Vt {
|
|
|
2990
3049
|
});
|
|
2991
3050
|
}
|
|
2992
3051
|
}
|
|
2993
|
-
const
|
|
2994
|
-
function
|
|
3052
|
+
const Hs = "landscape", Vs = "portrait";
|
|
3053
|
+
function zs() {
|
|
2995
3054
|
try {
|
|
2996
3055
|
const i = document.createElement("canvas");
|
|
2997
3056
|
return !!window.WebGLRenderingContext && (i.getContext("webgl") || i.getContext("experimental-webgl")) instanceof WebGLRenderingContext;
|
|
@@ -2999,7 +3058,7 @@ function Vs() {
|
|
|
2999
3058
|
return !1;
|
|
3000
3059
|
}
|
|
3001
3060
|
}
|
|
3002
|
-
async function
|
|
3061
|
+
async function qs() {
|
|
3003
3062
|
if (!window.createImageBitmap)
|
|
3004
3063
|
return !1;
|
|
3005
3064
|
const e = await (await fetch("data:image/webp;base64,UklGRiQAAABXRUJQVlA4IBgAAAAwAQCdASoCAAEAAQAcJaQAA3AA/v3AgAA=")).blob();
|
|
@@ -3009,33 +3068,33 @@ async function zs() {
|
|
|
3009
3068
|
return !1;
|
|
3010
3069
|
}
|
|
3011
3070
|
}
|
|
3012
|
-
function
|
|
3013
|
-
return window.innerWidth >= window.innerHeight ?
|
|
3071
|
+
function dt() {
|
|
3072
|
+
return window.innerWidth >= window.innerHeight ? Hs : Vs;
|
|
3014
3073
|
}
|
|
3015
|
-
var
|
|
3016
|
-
class
|
|
3074
|
+
var He, oe, re, ce, Ae, Ve, Pe, ze;
|
|
3075
|
+
class di extends Ns {
|
|
3017
3076
|
constructor(...e) {
|
|
3018
3077
|
super(...e);
|
|
3019
3078
|
b(this, "FPS_SAMPLE_INTERVAL", 1e4);
|
|
3020
3079
|
// wrapper state
|
|
3021
|
-
M(this,
|
|
3022
|
-
M(this, ne);
|
|
3080
|
+
M(this, He, 0);
|
|
3023
3081
|
M(this, oe);
|
|
3024
3082
|
M(this, re);
|
|
3025
|
-
M(this,
|
|
3026
|
-
M(this,
|
|
3027
|
-
M(this,
|
|
3028
|
-
M(this,
|
|
3029
|
-
|
|
3030
|
-
|
|
3083
|
+
M(this, ce);
|
|
3084
|
+
M(this, Ae, !1);
|
|
3085
|
+
M(this, Ve, !1);
|
|
3086
|
+
M(this, Pe, "");
|
|
3087
|
+
M(this, ze, []);
|
|
3088
|
+
v(this, re, {}), v(this, ce, this.deviceInfo()), v(this, oe, this.config.gameVersion), this.on("state", ({ balance: s }) => {
|
|
3089
|
+
v(this, He, s);
|
|
3031
3090
|
}), this.on("autoplay", ({ action: s }) => {
|
|
3032
|
-
["start", "resume"].includes(s) ?
|
|
3091
|
+
["start", "resume"].includes(s) ? v(this, Ae, !0) : v(this, Ae, !1);
|
|
3033
3092
|
}), this.on("settings", ({ fastPlay: s }) => {
|
|
3034
|
-
s !== void 0 &&
|
|
3093
|
+
s !== void 0 && v(this, Ve, s);
|
|
3035
3094
|
}), this.registerEvents();
|
|
3036
3095
|
}
|
|
3037
3096
|
async registerEvents() {
|
|
3038
|
-
k(this,
|
|
3097
|
+
k(this, ce).then((e) => {
|
|
3039
3098
|
this.track("Device Information", e);
|
|
3040
3099
|
}), this.on("loadStart", () => {
|
|
3041
3100
|
this.track("Game Loading", { progress: 0, step: "initial" });
|
|
@@ -3049,9 +3108,9 @@ class ci extends Fs {
|
|
|
3049
3108
|
systemMessageType: e.type
|
|
3050
3109
|
});
|
|
3051
3110
|
}), this.on("openGameResponse", async (e) => {
|
|
3052
|
-
|
|
3111
|
+
v(this, Pe, e.contract.stateType.nextRound), v(this, re, {
|
|
3053
3112
|
balanceInCoins: e.contract.balance.coins,
|
|
3054
|
-
clientVersion: k(this,
|
|
3113
|
+
clientVersion: k(this, oe),
|
|
3055
3114
|
coinValueInCents: this.sdkConfig.api.coinValueInCents,
|
|
3056
3115
|
coinValueInCentsFloat: this.sdkConfig.api.coinValueInCents,
|
|
3057
3116
|
currency: this.sdkConfig.api.currency,
|
|
@@ -3074,17 +3133,17 @@ class ci extends Fs {
|
|
|
3074
3133
|
// rtpVariant: 'unknown',
|
|
3075
3134
|
serverVersion: e.contract.metaData.version
|
|
3076
3135
|
// testVariants: '',
|
|
3077
|
-
}), this.track("Game Open", k(this,
|
|
3136
|
+
}), this.track("Game Open", k(this, re));
|
|
3078
3137
|
}), this.on("playCycleEnd", async (e) => {
|
|
3079
|
-
const s = await k(this,
|
|
3138
|
+
const s = await k(this, ce), { base: a, multiplier: c } = e.contract.bet.lastPaid ?? {}, o = e.contract.balance.coins, p = e.contract.bet.lastPaid.base * e.contract.bet.lastPaid.multiplier, h = e.contract.win.total, w = h - p, g = "spin", E = e.contract.roundId;
|
|
3080
3139
|
this.track("Betting Activity", {
|
|
3081
|
-
balance:
|
|
3082
|
-
balanceAfter:
|
|
3140
|
+
balance: o - w,
|
|
3141
|
+
balanceAfter: o,
|
|
3083
3142
|
baseBet: a,
|
|
3084
3143
|
// baseBetIndex,
|
|
3085
|
-
betMultiplier:
|
|
3086
|
-
betType:
|
|
3087
|
-
gameVersion: k(this,
|
|
3144
|
+
betMultiplier: c,
|
|
3145
|
+
betType: g,
|
|
3146
|
+
gameVersion: k(this, oe),
|
|
3088
3147
|
coinValueInCents: this.sdkConfig.api.coinValueInCents,
|
|
3089
3148
|
coinValueInCentsFloat: this.sdkConfig.api.coinValueInCents,
|
|
3090
3149
|
currency: this.sdkConfig.api.currency,
|
|
@@ -3092,20 +3151,20 @@ class ci extends Fs {
|
|
|
3092
3151
|
gameCode: this.sdkConfig.api.game,
|
|
3093
3152
|
gameCodeServer: this.sdkConfig.api.game,
|
|
3094
3153
|
isMobile: s.isMobile,
|
|
3095
|
-
netResult:
|
|
3154
|
+
netResult: w,
|
|
3096
3155
|
operatorName: "kalamba",
|
|
3097
|
-
orientation:
|
|
3156
|
+
orientation: dt(),
|
|
3098
3157
|
partnerId: this.sdkConfig.api.brand,
|
|
3099
3158
|
partnerParentId: this.sdkConfig.api.integration,
|
|
3100
3159
|
platform: "WEB",
|
|
3101
3160
|
playMode: this.sdkConfig.api.playMode,
|
|
3102
|
-
roundId:
|
|
3161
|
+
roundId: E,
|
|
3103
3162
|
// TODO: uncomment when tracking TrackingEvent.GameSpin is implemented
|
|
3104
3163
|
// roundTypes: [...this.#roundTypes],
|
|
3105
3164
|
roundTypes: ["BaseGame"],
|
|
3106
3165
|
totalBet: p,
|
|
3107
3166
|
totalWin: h
|
|
3108
|
-
}),
|
|
3167
|
+
}), v(this, ze, []);
|
|
3109
3168
|
}), this.on("telemetry.click", (e) => {
|
|
3110
3169
|
this.track("UI Interaction", {
|
|
3111
3170
|
action: "click",
|
|
@@ -3120,17 +3179,17 @@ class ci extends Fs {
|
|
|
3120
3179
|
}), this.reportFpsSample(), this.reportFpsRound();
|
|
3121
3180
|
}
|
|
3122
3181
|
reportFpsSample() {
|
|
3123
|
-
const e = new
|
|
3182
|
+
const e = new zt(), s = () => {
|
|
3124
3183
|
e.stop();
|
|
3125
|
-
const
|
|
3126
|
-
this.track("FPS Performance", { ...
|
|
3184
|
+
const c = e.getReport();
|
|
3185
|
+
this.track("FPS Performance", { ...c, fpsType: "sample" }), a();
|
|
3127
3186
|
}, a = async () => {
|
|
3128
3187
|
e.start(), setTimeout(s, this.FPS_SAMPLE_INTERVAL);
|
|
3129
3188
|
};
|
|
3130
3189
|
a();
|
|
3131
3190
|
}
|
|
3132
3191
|
reportFpsRound() {
|
|
3133
|
-
const e = new
|
|
3192
|
+
const e = new zt();
|
|
3134
3193
|
this.on("playCycleStart", () => {
|
|
3135
3194
|
e.start();
|
|
3136
3195
|
}), this.on("playCycleEnd", () => {
|
|
@@ -3141,13 +3200,13 @@ class ci extends Fs {
|
|
|
3141
3200
|
}
|
|
3142
3201
|
getExtraUiInteractionData() {
|
|
3143
3202
|
return {
|
|
3144
|
-
orientation:
|
|
3145
|
-
stateType: k(this,
|
|
3203
|
+
orientation: dt(),
|
|
3204
|
+
stateType: k(this, Pe)
|
|
3146
3205
|
};
|
|
3147
3206
|
}
|
|
3148
3207
|
async deviceInfo() {
|
|
3149
3208
|
var p;
|
|
3150
|
-
const { browser: e, device: s, os: a } =
|
|
3209
|
+
const { browser: e, device: s, os: a } = B(navigator.userAgent), c = zs(), o = await qs();
|
|
3151
3210
|
return {
|
|
3152
3211
|
browserName: e.name,
|
|
3153
3212
|
browserVersion: e.version,
|
|
@@ -3155,12 +3214,12 @@ class ci extends Fs {
|
|
|
3155
3214
|
deviceName: s.model,
|
|
3156
3215
|
deviceType: s.type,
|
|
3157
3216
|
isMobile: ["mobile", "tablet"].includes(s.type ?? ""),
|
|
3158
|
-
isWebGLSupported:
|
|
3159
|
-
isWebPSupported:
|
|
3217
|
+
isWebGLSupported: c,
|
|
3218
|
+
isWebPSupported: o,
|
|
3160
3219
|
manufacturer: s.vendor,
|
|
3161
3220
|
operatingSystem: a.name,
|
|
3162
3221
|
operatingSystemVersion: a.version,
|
|
3163
|
-
orientation:
|
|
3222
|
+
orientation: dt(),
|
|
3164
3223
|
pixelRatio: window.devicePixelRatio,
|
|
3165
3224
|
screenHeight: window.screen.height,
|
|
3166
3225
|
screenSize: `${window.screen.width}x${window.screen.height}`,
|
|
@@ -3172,59 +3231,59 @@ class ci extends Fs {
|
|
|
3172
3231
|
};
|
|
3173
3232
|
}
|
|
3174
3233
|
}
|
|
3175
|
-
|
|
3176
|
-
var
|
|
3177
|
-
const
|
|
3178
|
-
class
|
|
3234
|
+
He = new WeakMap(), oe = new WeakMap(), re = new WeakMap(), ce = new WeakMap(), Ae = new WeakMap(), Ve = new WeakMap(), Pe = new WeakMap(), ze = new WeakMap();
|
|
3235
|
+
var Ws = cs();
|
|
3236
|
+
const qt = /* @__PURE__ */ ds(Ws);
|
|
3237
|
+
class as {
|
|
3179
3238
|
constructor(t, e) {
|
|
3180
3239
|
b(this, "config");
|
|
3181
3240
|
b(this, "sdkConfig");
|
|
3182
3241
|
this.config = t, this.sdkConfig = e;
|
|
3183
3242
|
}
|
|
3184
3243
|
}
|
|
3185
|
-
const
|
|
3186
|
-
var
|
|
3187
|
-
class
|
|
3244
|
+
const Wt = 25, jt = 1e4;
|
|
3245
|
+
var de, le, ue, q;
|
|
3246
|
+
class li extends as {
|
|
3188
3247
|
constructor(...e) {
|
|
3189
3248
|
super(...e);
|
|
3190
|
-
M(this,
|
|
3191
|
-
M(this, de);
|
|
3249
|
+
M(this, de, "https://europe-west3-stargazer-328808.cloudfunctions.net/collect-events");
|
|
3192
3250
|
M(this, le);
|
|
3193
|
-
M(this,
|
|
3251
|
+
M(this, ue);
|
|
3252
|
+
M(this, q, []);
|
|
3194
3253
|
b(this, "processQueueForced");
|
|
3195
|
-
|
|
3254
|
+
v(this, le, (/* @__PURE__ */ new Date()).getTime()), v(this, q, []), this.processQueueForced = this.processQueue.bind(this, !0), this.schedule(), fetch(k(this, de), {
|
|
3196
3255
|
method: "OPTIONS"
|
|
3197
|
-
}).catch(
|
|
3256
|
+
}).catch(qt), this.subscribe();
|
|
3198
3257
|
}
|
|
3199
3258
|
subscribe() {
|
|
3200
3259
|
window.addEventListener("beforeunload", this.processQueueForced, !1), window.addEventListener("pagehide", this.processQueueForced, !1), window.addEventListener("visibilitychange", this.processQueueForced, !1);
|
|
3201
3260
|
}
|
|
3202
3261
|
schedule() {
|
|
3203
|
-
k(this,
|
|
3262
|
+
k(this, ue) && clearTimeout(k(this, ue)), v(this, ue, window.setTimeout(() => this.processQueue(), jt));
|
|
3204
3263
|
}
|
|
3205
3264
|
send(e) {
|
|
3206
|
-
|
|
3265
|
+
v(this, le, (/* @__PURE__ */ new Date()).getTime());
|
|
3207
3266
|
try {
|
|
3208
|
-
navigator.sendBeacon(k(this,
|
|
3267
|
+
navigator.sendBeacon(k(this, de), JSON.stringify(e));
|
|
3209
3268
|
} catch {
|
|
3210
|
-
fetch(k(this,
|
|
3269
|
+
fetch(k(this, de), {
|
|
3211
3270
|
body: JSON.stringify(e),
|
|
3212
3271
|
method: "POST",
|
|
3213
3272
|
headers: {
|
|
3214
3273
|
"Content-Type": "application/json"
|
|
3215
3274
|
},
|
|
3216
3275
|
keepalive: !0
|
|
3217
|
-
}).catch(
|
|
3276
|
+
}).catch(qt);
|
|
3218
3277
|
}
|
|
3219
3278
|
this.schedule();
|
|
3220
3279
|
}
|
|
3221
3280
|
addToQueue(e) {
|
|
3222
|
-
k(this,
|
|
3281
|
+
k(this, q).push(e), this.processQueue();
|
|
3223
3282
|
}
|
|
3224
3283
|
processQueue(e = !1) {
|
|
3225
|
-
if (!(this.sdkConfig == null || !this.sdkConfig.ui.feature.allowTelemetry) && !(!e && k(this,
|
|
3226
|
-
for (; k(this,
|
|
3227
|
-
const s = k(this,
|
|
3284
|
+
if (!(this.sdkConfig == null || !this.sdkConfig.ui.feature.allowTelemetry) && !(!e && k(this, q).length < Wt && (/* @__PURE__ */ new Date()).getTime() - k(this, le) < jt))
|
|
3285
|
+
for (; k(this, q).length; ) {
|
|
3286
|
+
const s = k(this, q).splice(0, Wt).map((a) => ({
|
|
3228
3287
|
...a,
|
|
3229
3288
|
sessionID: this.sdkConfig.api.sessionId,
|
|
3230
3289
|
userID: this.sdkConfig.api.user
|
|
@@ -3237,35 +3296,35 @@ class di extends is {
|
|
|
3237
3296
|
eventName: e,
|
|
3238
3297
|
eventParams: s,
|
|
3239
3298
|
eventTimestamp: (/* @__PURE__ */ new Date()).getTime(),
|
|
3240
|
-
eventUUID:
|
|
3299
|
+
eventUUID: ls()
|
|
3241
3300
|
});
|
|
3242
3301
|
}
|
|
3243
3302
|
}
|
|
3244
|
-
|
|
3245
|
-
const
|
|
3246
|
-
class
|
|
3303
|
+
de = new WeakMap(), le = new WeakMap(), ue = new WeakMap(), q = new WeakMap();
|
|
3304
|
+
const js = P("LoggingTracker", "color:#000000;font-weight:bold;");
|
|
3305
|
+
class ui extends as {
|
|
3247
3306
|
track(t, e) {
|
|
3248
|
-
|
|
3307
|
+
js(`@${this.sdkConfig.api.user}`, `[${t}]`, e);
|
|
3249
3308
|
}
|
|
3250
3309
|
}
|
|
3251
3310
|
export {
|
|
3252
|
-
|
|
3253
|
-
|
|
3254
|
-
|
|
3255
|
-
|
|
3256
|
-
|
|
3257
|
-
|
|
3258
|
-
|
|
3259
|
-
|
|
3260
|
-
|
|
3261
|
-
|
|
3262
|
-
|
|
3263
|
-
|
|
3264
|
-
|
|
3265
|
-
|
|
3266
|
-
|
|
3267
|
-
|
|
3268
|
-
|
|
3269
|
-
|
|
3270
|
-
|
|
3311
|
+
Js as BasicPlugin,
|
|
3312
|
+
_ as CasinoPlugin,
|
|
3313
|
+
Ys as DebuggingPlugin,
|
|
3314
|
+
oi as EveryMatrixPlugin,
|
|
3315
|
+
Zs as GigPlugin,
|
|
3316
|
+
ri as KalambaBullseyeParsers,
|
|
3317
|
+
ci as KalambaBullseyePlugin,
|
|
3318
|
+
di as KalambaStargazerPlugin,
|
|
3319
|
+
li as KalambaStargazerTracker,
|
|
3320
|
+
ui as LoggingTracker,
|
|
3321
|
+
ei as OryxPlugin,
|
|
3322
|
+
ti as PariplayPlugin,
|
|
3323
|
+
ai as QuantaPlugin,
|
|
3324
|
+
si as RelaxFEIMPlugin,
|
|
3325
|
+
Ps as RgsPlugin,
|
|
3326
|
+
ni as SoftSwissPlugin,
|
|
3327
|
+
Ns as TelemetryPlugin,
|
|
3328
|
+
as as Tracker,
|
|
3329
|
+
ii as TukoPlugin
|
|
3271
3330
|
};
|