@orbit-software/sdk 1.92.2 → 1.93.1
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/.claude/settings.local.json +10 -1
- package/dist/esm/lib/iframe-bridge/iframe-client.d.ts +3 -0
- package/dist/esm/lib/iframe-bridge/rpc-protocol.d.ts +21 -0
- package/dist/esm/sdk.d.ts +3 -3
- package/dist/esm/sdk.mjs +650 -288
- package/dist/esm/sdk.umd.js +13 -13
- package/dist/esm/utils/analytics.d.ts +7 -1
- package/dist/stats-esm.html +1 -1
- package/dist/stats-umd-react.html +1 -1
- package/dist/stats-umd.html +1 -1
- package/dist/umd/sdk.umd.js +13 -13
- package/dist/umd_react/sdk_react.umd.js +15 -15
- package/package.json +3 -2
package/dist/esm/sdk.mjs
CHANGED
|
@@ -16,7 +16,7 @@ import * as React from "react";
|
|
|
16
16
|
import React__default, { createContext, useContext, useState, useRef, useEffect, useCallback, useLayoutEffect, useMemo, forwardRef, isValidElement, useId as useId$1, useInsertionEffect, Children, Fragment, createElement, Component, version as version$1, memo as memo$1, Suspense } from "react";
|
|
17
17
|
import * as ReactDOM from "react-dom";
|
|
18
18
|
import ReactDOM__default, { createPortal } from "react-dom";
|
|
19
|
-
const version = "1.
|
|
19
|
+
const version = "1.93.1";
|
|
20
20
|
function getDefaultExportFromCjs$3(e) {
|
|
21
21
|
return e && e.__esModule && Object.prototype.hasOwnProperty.call(e, "default") ? e.default : e;
|
|
22
22
|
}
|
|
@@ -11851,8 +11851,8 @@ function useAnimate() {
|
|
|
11851
11851
|
e.animations.forEach((i) => i.stop()), e.animations.length = 0;
|
|
11852
11852
|
}), [e, t];
|
|
11853
11853
|
}
|
|
11854
|
-
var define_process_env_default$
|
|
11855
|
-
const ASSETS_BASE_URL = define_process_env_default$
|
|
11854
|
+
var define_process_env_default$6 = { NODE_ENV: "production", version: "1.93.1", BASE_URL: "https://app.portalapp.games/sdk", ADS_SCRIPT_URL: "https://ads-sdk.portalapp.games/script.js", ASSETS_BASE_URL: "https://sdk.portalapp.games/assets" };
|
|
11855
|
+
const ASSETS_BASE_URL = define_process_env_default$6.ASSETS_BASE_URL;
|
|
11856
11856
|
function assetUrl(e) {
|
|
11857
11857
|
return `${ASSETS_BASE_URL}/${e}`;
|
|
11858
11858
|
}
|
|
@@ -19474,7 +19474,7 @@ var Ot, jr, Removable = (jr = class {
|
|
|
19474
19474
|
clearGcTimeout() {
|
|
19475
19475
|
U(this, Ot) && (timeoutManager.clearTimeout(U(this, Ot)), ge(this, Ot, void 0));
|
|
19476
19476
|
}
|
|
19477
|
-
}, Ot = new WeakMap(), jr), define_process_env_default$
|
|
19477
|
+
}, Ot = new WeakMap(), jr), define_process_env_default$5 = { NODE_ENV: "production", version: "1.93.1", BASE_URL: "https://app.portalapp.games/sdk", ADS_SCRIPT_URL: "https://ads-sdk.portalapp.games/script.js", ASSETS_BASE_URL: "https://sdk.portalapp.games/assets" }, kt, Gt, st, Lt, Xe, er, Dt, ot, dt, Br, Query = (Br = class extends Removable {
|
|
19478
19478
|
constructor(t) {
|
|
19479
19479
|
super();
|
|
19480
19480
|
we(this, ot);
|
|
@@ -19643,7 +19643,7 @@ var Ot, jr, Removable = (jr = class {
|
|
|
19643
19643
|
try {
|
|
19644
19644
|
const w = await U(this, Xe).start();
|
|
19645
19645
|
if (w === void 0)
|
|
19646
|
-
throw define_process_env_default$
|
|
19646
|
+
throw define_process_env_default$5.NODE_ENV, new Error(`${this.queryHash} data is undefined`);
|
|
19647
19647
|
return this.setData(w), (m = (p = U(this, st).config).onSuccess) == null || m.call(p, w, this), (v = (g = U(this, st).config).onSettled) == null || v.call(
|
|
19648
19648
|
g,
|
|
19649
19649
|
w,
|
|
@@ -19776,7 +19776,7 @@ function getDefaultState$1(e) {
|
|
|
19776
19776
|
fetchStatus: "idle"
|
|
19777
19777
|
};
|
|
19778
19778
|
}
|
|
19779
|
-
var rt, De, tr, Qe, Nt, zt, ht, Et, rr, Wt, Ht, $t, Ft, wt, qt, je, Zt, fr, dr, hr, pr, mr, gr, vr,
|
|
19779
|
+
var rt, De, tr, Qe, Nt, zt, ht, Et, rr, Wt, Ht, $t, Ft, wt, qt, je, Zt, fr, dr, hr, pr, mr, gr, vr, Zr, Vr, QueryObserver = (Vr = class extends Subscribable {
|
|
19780
19780
|
constructor(t, i) {
|
|
19781
19781
|
super();
|
|
19782
19782
|
we(this, je);
|
|
@@ -19986,7 +19986,7 @@ var rt, De, tr, Qe, Nt, zt, ht, Et, rr, Wt, Ht, $t, Ft, wt, qt, je, Zt, fr, dr,
|
|
|
19986
19986
|
return U(this, Qe)[u] !== t[u] && l.has(u);
|
|
19987
19987
|
});
|
|
19988
19988
|
};
|
|
19989
|
-
Me(this, je,
|
|
19989
|
+
Me(this, je, Zr).call(this, { listeners: s() });
|
|
19990
19990
|
}
|
|
19991
19991
|
onQueryUpdate() {
|
|
19992
19992
|
this.updateResult(), this.hasListeners() && Me(this, je, pr).call(this);
|
|
@@ -20028,7 +20028,7 @@ var rt, De, tr, Qe, Nt, zt, ht, Et, rr, Wt, Ht, $t, Ft, wt, qt, je, Zt, fr, dr,
|
|
|
20028
20028
|
return;
|
|
20029
20029
|
const i = U(this, De);
|
|
20030
20030
|
ge(this, De, t), ge(this, tr, t.state), this.hasListeners() && (i == null || i.removeObserver(this), t.addObserver(this));
|
|
20031
|
-
},
|
|
20031
|
+
}, Zr = function(t) {
|
|
20032
20032
|
notifyManager.batch(() => {
|
|
20033
20033
|
t.listeners && this.listeners.forEach((i) => {
|
|
20034
20034
|
i(U(this, Qe));
|
|
@@ -29882,7 +29882,7 @@ const useConfettiStore = create$2((e) => ({
|
|
|
29882
29882
|
}, [M, N]), q = useCallback(
|
|
29883
29883
|
async (ae) => {
|
|
29884
29884
|
try {
|
|
29885
|
-
const me = ae ?? F(), Se = await
|
|
29885
|
+
const me = ae ?? F(), Se = await resolvedSDK.getValue(me);
|
|
29886
29886
|
if (console.log("savedPosition", Se), Se) {
|
|
29887
29887
|
const Ae = JSON.parse(Se);
|
|
29888
29888
|
return N(Ae), !0;
|
|
@@ -29901,7 +29901,7 @@ const useConfettiStore = create$2((e) => ({
|
|
|
29901
29901
|
}, [g, q, N, i, s]), useEffect(() => {
|
|
29902
29902
|
if (!$ && g && !b) {
|
|
29903
29903
|
const ae = F();
|
|
29904
|
-
|
|
29904
|
+
resolvedSDK.setValue(
|
|
29905
29905
|
ae,
|
|
29906
29906
|
JSON.stringify({ x: T, y: P })
|
|
29907
29907
|
);
|
|
@@ -30401,7 +30401,7 @@ function OrientationCheck() {
|
|
|
30401
30401
|
const [e, t] = useState(!1), [i, s] = useState(!1), o = useRef(null), a = useRef(window.innerWidth);
|
|
30402
30402
|
return useEffect(() => ((async () => {
|
|
30403
30403
|
try {
|
|
30404
|
-
const c = await
|
|
30404
|
+
const c = await resolvedSDK.getConfig(), u = c.supported_screen_formats.includes("landscape"), f = c.supported_screen_formats.includes("portrait");
|
|
30405
30405
|
if (u && f) {
|
|
30406
30406
|
s(!0), t(!1);
|
|
30407
30407
|
return;
|
|
@@ -34991,150 +34991,224 @@ function I18nBackendLanguageProvider({ children: e }) {
|
|
|
34991
34991
|
}
|
|
34992
34992
|
return o.current = null, e;
|
|
34993
34993
|
}
|
|
34994
|
-
|
|
34995
|
-
|
|
34996
|
-
|
|
34997
|
-
|
|
34998
|
-
|
|
34999
|
-
})
|
|
35000
|
-
|
|
35001
|
-
|
|
35002
|
-
|
|
35003
|
-
function createMakeRequest(e) {
|
|
35004
|
-
return async function(i, s, o) {
|
|
35005
|
-
e.waitUntilReady && await e.waitUntilReady();
|
|
35006
|
-
const a = `${e.baseUrl}/${i}`;
|
|
34994
|
+
const SESSION_HEADER$1 = "X-Session-Id";
|
|
34995
|
+
async function sendBatch(e, { events: t, sessionId: i }, s = {}) {
|
|
34996
|
+
const o = JSON.stringify({ events: t }), a = {
|
|
34997
|
+
"Content-Type": "application/json",
|
|
34998
|
+
[SESSION_HEADER$1]: i
|
|
34999
|
+
}, l = e.getHeaders();
|
|
35000
|
+
l && Object.assign(a, l);
|
|
35001
|
+
const c = s.fireAndForget ? 1 : 2;
|
|
35002
|
+
for (let u = 0; u < c; u++)
|
|
35007
35003
|
try {
|
|
35008
|
-
const
|
|
35009
|
-
"
|
|
35010
|
-
|
|
35011
|
-
|
|
35012
|
-
|
|
35013
|
-
console.warn("WARNING: AUTH_DATA is used for requests!!!"), console.log("=== API Request Debug ==="), console.log("externalAuthData:", l), console.log("externalAuthData type:", typeof l), console.log("externalAuthData truthy?", !!l), console.log("externalAuthData length:", l == null ? void 0 : l.length), console.log("config.getInitData():", e.getInitData()), console.log("config.getInitData() type:", typeof e.getInitData()), console.log("config.getInitData() truthy?", !!e.getInitData());
|
|
35014
|
-
const d = l || e.getInitData();
|
|
35015
|
-
console.log("X-Auth value (before headers):", d), console.log("X-Auth value type:", typeof d), console.log("X-Auth value truthy?", !!d), console.log("X-Auth value length:", d == null ? void 0 : d.length), u["a-deb"] = l, u["a-deb-string"] = String(l), console.log("Final headers object:", u), u["X-Auth"] || (u["X-Auth"] = l), console.log("Final X-Auth header:", u["X-Auth"]);
|
|
35016
|
-
}
|
|
35017
|
-
const f = await fetch(a, {
|
|
35018
|
-
method: s,
|
|
35019
|
-
headers: u,
|
|
35020
|
-
body: o ? JSON.stringify(o) : null
|
|
35004
|
+
const f = await fetch(e.endpoint, {
|
|
35005
|
+
method: "POST",
|
|
35006
|
+
headers: a,
|
|
35007
|
+
body: o,
|
|
35008
|
+
keepalive: !0
|
|
35021
35009
|
});
|
|
35022
|
-
if (
|
|
35023
|
-
|
|
35024
|
-
|
|
35025
|
-
|
|
35026
|
-
|
|
35027
|
-
try {
|
|
35028
|
-
return await f.text();
|
|
35029
|
-
} catch {
|
|
35030
|
-
return;
|
|
35031
|
-
}
|
|
35032
|
-
})()
|
|
35033
|
-
});
|
|
35034
|
-
return f.json();
|
|
35035
|
-
} catch (l) {
|
|
35036
|
-
throw l instanceof APIRequestError || console.error(`Error during request to ${i}:`, l), l;
|
|
35010
|
+
if (f.ok) return !0;
|
|
35011
|
+
if (f.status < 500)
|
|
35012
|
+
return e.debug && console.warn("[analytics] drop batch, status", f.status), !1;
|
|
35013
|
+
} catch (f) {
|
|
35014
|
+
e.debug && console.warn("[analytics] send failed, attempt", u, f);
|
|
35037
35015
|
}
|
|
35038
|
-
|
|
35016
|
+
return !1;
|
|
35039
35017
|
}
|
|
35040
|
-
|
|
35041
|
-
|
|
35042
|
-
|
|
35043
|
-
|
|
35044
|
-
}
|
|
35045
|
-
}
|
|
35046
|
-
|
|
35047
|
-
|
|
35048
|
-
|
|
35018
|
+
class Batcher {
|
|
35019
|
+
constructor(t, i) {
|
|
35020
|
+
this.config = t, this.session = i, this.queue = [], this.firstEnqueuedAt = null, this.timer = null, this.inFlight = null, this.timer = setInterval(() => {
|
|
35021
|
+
this.flush();
|
|
35022
|
+
}, t.flushIntervalMs);
|
|
35023
|
+
}
|
|
35024
|
+
enqueue(t) {
|
|
35025
|
+
this.queue.push(t), this.firstEnqueuedAt === null && (this.firstEnqueuedAt = Date.now()), this.queue.length >= this.config.batchSize && this.flush();
|
|
35026
|
+
}
|
|
35027
|
+
/**
|
|
35028
|
+
* Flush via fetch. If headers aren't ready yet (auth resolver returns null),
|
|
35029
|
+
* hold events up to `authWaitTimeoutMs`, then drop them on the next flush
|
|
35030
|
+
* attempt so memory stays bounded.
|
|
35031
|
+
*/
|
|
35032
|
+
async flush() {
|
|
35033
|
+
if (this.inFlight) return this.inFlight;
|
|
35034
|
+
if (this.queue.length === 0) return;
|
|
35035
|
+
if (!(this.config.getHeaders() !== null)) {
|
|
35036
|
+
this.firstEnqueuedAt !== null && Date.now() - this.firstEnqueuedAt > this.config.authWaitTimeoutMs && (this.config.debug && console.warn("[analytics] dropping batch: auth not ready within timeout"), this.queue = [], this.firstEnqueuedAt = null);
|
|
35037
|
+
return;
|
|
35049
35038
|
}
|
|
35050
|
-
|
|
35051
|
-
|
|
35052
|
-
|
|
35053
|
-
|
|
35054
|
-
|
|
35055
|
-
|
|
35056
|
-
|
|
35057
|
-
|
|
35058
|
-
|
|
35059
|
-
|
|
35060
|
-
|
|
35061
|
-
|
|
35062
|
-
|
|
35063
|
-
|
|
35064
|
-
|
|
35065
|
-
|
|
35066
|
-
|
|
35067
|
-
|
|
35068
|
-
|
|
35069
|
-
|
|
35070
|
-
retryDelay: (e, t) => t instanceof APIRequestError && t.status === 401 ? Math.min(1e3 * 2 ** e, 4e3) : Math.min(1e3 * 2 ** e, 3e4)
|
|
35071
|
-
},
|
|
35072
|
-
mutations: {
|
|
35073
|
-
retry: 1,
|
|
35074
|
-
retryDelay: 1e3
|
|
35039
|
+
const i = this.queue.splice(0, this.config.batchSize);
|
|
35040
|
+
return this.firstEnqueuedAt = this.queue.length > 0 ? Date.now() : null, this.inFlight = sendBatch(this.config, {
|
|
35041
|
+
events: i,
|
|
35042
|
+
sessionId: this.session.getSessionId()
|
|
35043
|
+
}).then(() => {
|
|
35044
|
+
}).finally(() => {
|
|
35045
|
+
this.inFlight = null;
|
|
35046
|
+
}), this.inFlight;
|
|
35047
|
+
}
|
|
35048
|
+
/**
|
|
35049
|
+
* Flush on page-hide. Uses `fetch` with `keepalive: true` — the modern
|
|
35050
|
+
* replacement for `sendBeacon` that keeps the request alive through
|
|
35051
|
+
* navigation/unload while still supporting the auth header the backend
|
|
35052
|
+
* requires. Fire-and-forget; no retry, no await.
|
|
35053
|
+
*/
|
|
35054
|
+
flushOnHide() {
|
|
35055
|
+
if (this.queue.length === 0) return;
|
|
35056
|
+
if (this.config.getHeaders() === null) {
|
|
35057
|
+
this.queue = [], this.firstEnqueuedAt = null;
|
|
35058
|
+
return;
|
|
35075
35059
|
}
|
|
35060
|
+
const t = this.queue.splice(0, this.config.batchSize);
|
|
35061
|
+
this.firstEnqueuedAt = this.queue.length > 0 ? Date.now() : null, sendBatch(
|
|
35062
|
+
this.config,
|
|
35063
|
+
{ events: t, sessionId: this.session.getSessionId() },
|
|
35064
|
+
{ fireAndForget: !0 }
|
|
35065
|
+
);
|
|
35066
|
+
}
|
|
35067
|
+
stop() {
|
|
35068
|
+
this.timer !== null && (clearInterval(this.timer), this.timer = null);
|
|
35076
35069
|
}
|
|
35077
|
-
});
|
|
35078
|
-
function createOverlay(e) {
|
|
35079
|
-
let t = document.getElementById("overlay-root");
|
|
35080
|
-
t = document.createElement("div"), t.id = "overlay-root", document.body.appendChild(t), clientExports.createRoot(t).render(/* @__PURE__ */ jsxRuntimeExports.jsx(OverlayManager, { options: e }));
|
|
35081
35070
|
}
|
|
35082
|
-
|
|
35083
|
-
|
|
35084
|
-
|
|
35085
|
-
|
|
35086
|
-
|
|
35087
|
-
|
|
35088
|
-
|
|
35089
|
-
|
|
35090
|
-
|
|
35091
|
-
return
|
|
35092
|
-
|
|
35071
|
+
function detectPlatform() {
|
|
35072
|
+
var t, i;
|
|
35073
|
+
const e = typeof window < "u" ? (i = (t = window.Telegram) == null ? void 0 : t.WebApp) == null ? void 0 : i.platform : void 0;
|
|
35074
|
+
return e === "ios" ? "ios" : e === "android" || e === "android_x" ? "android" : "web";
|
|
35075
|
+
}
|
|
35076
|
+
const STORAGE_KEY = "__orbit_analytics_session__";
|
|
35077
|
+
function generateId() {
|
|
35078
|
+
return typeof crypto < "u" && typeof crypto.randomUUID == "function" ? crypto.randomUUID() : "xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g, (e) => {
|
|
35079
|
+
const t = Math.random() * 16 | 0;
|
|
35080
|
+
return (e === "x" ? t : t & 3 | 8).toString(16);
|
|
35081
|
+
});
|
|
35082
|
+
}
|
|
35083
|
+
function readStorage() {
|
|
35084
|
+
try {
|
|
35085
|
+
const e = sessionStorage.getItem(STORAGE_KEY);
|
|
35086
|
+
if (!e) return null;
|
|
35087
|
+
const t = JSON.parse(e);
|
|
35088
|
+
return typeof (t == null ? void 0 : t.sessionId) != "string" ? null : t;
|
|
35089
|
+
} catch {
|
|
35090
|
+
return null;
|
|
35091
|
+
}
|
|
35092
|
+
}
|
|
35093
|
+
function writeStorage(e) {
|
|
35094
|
+
try {
|
|
35095
|
+
sessionStorage.setItem(STORAGE_KEY, JSON.stringify(e));
|
|
35096
|
+
} catch {
|
|
35097
|
+
}
|
|
35098
|
+
}
|
|
35099
|
+
class SessionManager {
|
|
35100
|
+
constructor(t) {
|
|
35101
|
+
this.inactivityTimeoutMs = t;
|
|
35102
|
+
const i = readStorage();
|
|
35103
|
+
if (i)
|
|
35104
|
+
this.state = i;
|
|
35105
|
+
else {
|
|
35106
|
+
const s = Date.now();
|
|
35107
|
+
this.state = {
|
|
35108
|
+
sessionId: generateId(),
|
|
35109
|
+
startedAt: s,
|
|
35110
|
+
lastActivityAt: s,
|
|
35111
|
+
hiddenAt: null
|
|
35112
|
+
}, writeStorage(this.state);
|
|
35113
|
+
}
|
|
35114
|
+
}
|
|
35115
|
+
getSessionId() {
|
|
35116
|
+
return this.state.sessionId;
|
|
35117
|
+
}
|
|
35118
|
+
onHidden() {
|
|
35119
|
+
this.state.hiddenAt === null && (this.state.hiddenAt = Date.now(), writeStorage(this.state));
|
|
35120
|
+
}
|
|
35121
|
+
onActive() {
|
|
35122
|
+
const t = Date.now();
|
|
35123
|
+
this.state.hiddenAt !== null && (t - this.state.hiddenAt > this.inactivityTimeoutMs && this.rotate(t), this.state.hiddenAt = null), this.state.lastActivityAt = t, writeStorage(this.state);
|
|
35124
|
+
}
|
|
35125
|
+
rotate(t) {
|
|
35126
|
+
this.state = {
|
|
35127
|
+
sessionId: generateId(),
|
|
35128
|
+
startedAt: t,
|
|
35129
|
+
lastActivityAt: t,
|
|
35130
|
+
hiddenAt: null
|
|
35093
35131
|
};
|
|
35094
|
-
}, [t]), /* @__PURE__ */ jsxRuntimeExports.jsx(QueryClientProvider, { client: queryClient, children: /* @__PURE__ */ jsxRuntimeExports.jsxs(AppRoot, { children: [
|
|
35095
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx(OrientationCheck, {}),
|
|
35096
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx("div", { id: "overlay-banner-top", className: "cssdk-banner-container cssdk-banner-top" }),
|
|
35097
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx(Suspense, { fallback: null, children: /* @__PURE__ */ jsxRuntimeExports.jsxs(I18nBackendLanguageProvider, { children: [
|
|
35098
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx(SnackbarProvider, { children: /* @__PURE__ */ jsxRuntimeExports.jsx(BoxOpeningProvider, { children: /* @__PURE__ */ jsxRuntimeExports.jsxs(ConfettiProvider, { children: [
|
|
35099
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
35100
|
-
OverlayProfile,
|
|
35101
|
-
{
|
|
35102
|
-
variant: (e == null ? void 0 : e.variant) || "translucent",
|
|
35103
|
-
onOpenProfile: () => t(),
|
|
35104
|
-
initialPosition: e == null ? void 0 : e.initialPosition,
|
|
35105
|
-
initialCoordinates: e == null ? void 0 : e.initialCoordinates
|
|
35106
|
-
}
|
|
35107
|
-
),
|
|
35108
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx(TopUpModal, {}),
|
|
35109
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx(BoxOpeningModal, {}),
|
|
35110
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx(ProfileInventoryModal, {})
|
|
35111
|
-
] }) }) }),
|
|
35112
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx(EventsStack, {})
|
|
35113
|
-
] }) }),
|
|
35114
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx("div", { id: "overlay-banner-bottom", className: "cssdk-banner-container cssdk-banner-bottom" })
|
|
35115
|
-
] }) });
|
|
35116
|
-
};
|
|
35117
|
-
class AbortError extends Error {
|
|
35118
|
-
constructor(t = "The operation was aborted") {
|
|
35119
|
-
super(t), this.name = "AbortError";
|
|
35120
35132
|
}
|
|
35121
35133
|
}
|
|
35122
|
-
function
|
|
35123
|
-
|
|
35124
|
-
|
|
35125
|
-
|
|
35126
|
-
|
|
35127
|
-
|
|
35134
|
+
function bindVisibility(e, t) {
|
|
35135
|
+
var o;
|
|
35136
|
+
const i = [], s = typeof window < "u" ? (o = window.Telegram) == null ? void 0 : o.WebApp : void 0;
|
|
35137
|
+
if (s && typeof s.onEvent == "function" && typeof s.offEvent == "function" && (s.onEvent("activated", e), s.onEvent("deactivated", t), i.push(() => {
|
|
35138
|
+
s.offEvent("activated", e), s.offEvent("deactivated", t);
|
|
35139
|
+
})), typeof document < "u") {
|
|
35140
|
+
const a = () => {
|
|
35141
|
+
document.visibilityState === "visible" ? e() : t();
|
|
35128
35142
|
};
|
|
35129
|
-
|
|
35130
|
-
|
|
35131
|
-
|
|
35132
|
-
|
|
35133
|
-
|
|
35134
|
-
|
|
35135
|
-
|
|
35143
|
+
document.addEventListener("visibilitychange", a), i.push(() => document.removeEventListener("visibilitychange", a));
|
|
35144
|
+
}
|
|
35145
|
+
return typeof window < "u" && (window.addEventListener("pagehide", t), i.push(() => window.removeEventListener("pagehide", t))), () => {
|
|
35146
|
+
for (const a of i) a();
|
|
35147
|
+
};
|
|
35148
|
+
}
|
|
35149
|
+
const KEY = "__orbitAnalyticsInstance__", DEFAULTS = {
|
|
35150
|
+
endpoint: "https://app.portalapp.games/api/analytics/events",
|
|
35151
|
+
inactivityTimeoutMs: 5 * 60 * 1e3,
|
|
35152
|
+
batchSize: 50,
|
|
35153
|
+
flushIntervalMs: 5e3,
|
|
35154
|
+
authWaitTimeoutMs: 30 * 1e3,
|
|
35155
|
+
debug: !1
|
|
35156
|
+
};
|
|
35157
|
+
function resolveConfig(e) {
|
|
35158
|
+
return {
|
|
35159
|
+
endpoint: e.endpoint ?? DEFAULTS.endpoint,
|
|
35160
|
+
getHeaders: e.getHeaders ?? (() => ({})),
|
|
35161
|
+
inactivityTimeoutMs: e.inactivityTimeoutMs ?? DEFAULTS.inactivityTimeoutMs,
|
|
35162
|
+
batchSize: e.batchSize ?? DEFAULTS.batchSize,
|
|
35163
|
+
flushIntervalMs: e.flushIntervalMs ?? DEFAULTS.flushIntervalMs,
|
|
35164
|
+
authWaitTimeoutMs: e.authWaitTimeoutMs ?? DEFAULTS.authWaitTimeoutMs,
|
|
35165
|
+
debug: e.debug ?? DEFAULTS.debug,
|
|
35166
|
+
platform: e.platform ?? detectPlatform()
|
|
35167
|
+
};
|
|
35136
35168
|
}
|
|
35137
|
-
|
|
35169
|
+
function warnOnMismatch(e, t) {
|
|
35170
|
+
const i = [];
|
|
35171
|
+
e.endpoint !== t.endpoint && i.push("endpoint"), e.inactivityTimeoutMs !== t.inactivityTimeoutMs && i.push("inactivityTimeoutMs"), e.batchSize !== t.batchSize && i.push("batchSize"), i.length > 0 && console.warn(
|
|
35172
|
+
`[analytics] second getAnalytics() call with differing config (${i.join(
|
|
35173
|
+
", "
|
|
35174
|
+
)}); first-call config wins.`
|
|
35175
|
+
);
|
|
35176
|
+
}
|
|
35177
|
+
function createInstance(e) {
|
|
35178
|
+
const t = new SessionManager(e.inactivityTimeoutMs), i = new Batcher(e, t);
|
|
35179
|
+
bindVisibility(
|
|
35180
|
+
() => t.onActive(),
|
|
35181
|
+
() => {
|
|
35182
|
+
t.onHidden(), i.flushOnHide();
|
|
35183
|
+
}
|
|
35184
|
+
);
|
|
35185
|
+
let s;
|
|
35186
|
+
return {
|
|
35187
|
+
track: (a, l = {}) => {
|
|
35188
|
+
const c = { ...l };
|
|
35189
|
+
s !== void 0 && (c.user_id = s), c.platform === void 0 && (c.platform = e.platform);
|
|
35190
|
+
const u = {
|
|
35191
|
+
name: a,
|
|
35192
|
+
extra: c,
|
|
35193
|
+
ts_client: Date.now()
|
|
35194
|
+
};
|
|
35195
|
+
i.enqueue(u), e.debug && console.debug("[analytics] track", a, c);
|
|
35196
|
+
},
|
|
35197
|
+
flush: () => i.flush(),
|
|
35198
|
+
identify: (a) => {
|
|
35199
|
+
s = a;
|
|
35200
|
+
},
|
|
35201
|
+
getSessionId: () => t.getSessionId()
|
|
35202
|
+
};
|
|
35203
|
+
}
|
|
35204
|
+
function getAnalytics(e) {
|
|
35205
|
+
const t = globalThis, i = t[KEY];
|
|
35206
|
+
if (i)
|
|
35207
|
+
return i.config.debug && warnOnMismatch(i.config, resolveConfig(e)), i.instance;
|
|
35208
|
+
const s = resolveConfig(e), o = createInstance(s);
|
|
35209
|
+
return t[KEY] = { instance: o, config: s }, o;
|
|
35210
|
+
}
|
|
35211
|
+
var define_process_env_default$4 = { NODE_ENV: "production", version: "1.93.1", BASE_URL: "https://app.portalapp.games/sdk", ADS_SCRIPT_URL: "https://ads-sdk.portalapp.games/script.js", ASSETS_BASE_URL: "https://sdk.portalapp.games/assets" }, win;
|
|
35138
35212
|
if (typeof window > "u") {
|
|
35139
35213
|
var loc = {
|
|
35140
35214
|
hostname: ""
|
|
@@ -38209,7 +38283,7 @@ var postcss$2$1 = {}, LazyResult$2$1 = /* @__PURE__ */ function() {
|
|
|
38209
38283
|
s.plugin = a.postcssPlugin, s.setMessage();
|
|
38210
38284
|
else if (a.postcssVersion) {
|
|
38211
38285
|
var l, c, u, f, d;
|
|
38212
|
-
define_process_env_default$
|
|
38286
|
+
define_process_env_default$4.NODE_ENV;
|
|
38213
38287
|
}
|
|
38214
38288
|
} catch (h) {
|
|
38215
38289
|
console && console.error && console.error(h);
|
|
@@ -38756,7 +38830,7 @@ postcss$3.plugin = function e(t, i) {
|
|
|
38756
38830
|
for (var l = arguments.length, c = new Array(l), u = 0; u < l; u++)
|
|
38757
38831
|
c[u] = arguments[u];
|
|
38758
38832
|
console && console.warn && !s && (s = !0, console.warn(t + `: postcss.plugin was deprecated. Migration guide:
|
|
38759
|
-
https://evilmartians.com/chronicles/postcss-8-plugin-migration`), define_process_env_default$
|
|
38833
|
+
https://evilmartians.com/chronicles/postcss-8-plugin-migration`), define_process_env_default$4.LANG && define_process_env_default$4.LANG.startsWith("cn") && console.warn(t + `: 里面 postcss.plugin 被弃用. 迁移指南:
|
|
38760
38834
|
https://www.w3ctech.com/topic/2226`));
|
|
38761
38835
|
var f = i.apply(void 0, [].concat(c));
|
|
38762
38836
|
return f.postcssPlugin = t, f.postcssVersion = new Processor2$1().version, f;
|
|
@@ -40749,7 +40823,7 @@ var postcss$2 = {}, LazyResult$2 = /* @__PURE__ */ function() {
|
|
|
40749
40823
|
s.plugin = a.postcssPlugin, s.setMessage();
|
|
40750
40824
|
else if (a.postcssVersion) {
|
|
40751
40825
|
var l, c, u, f, d;
|
|
40752
|
-
define_process_env_default$
|
|
40826
|
+
define_process_env_default$4.NODE_ENV;
|
|
40753
40827
|
}
|
|
40754
40828
|
} catch (h) {
|
|
40755
40829
|
console && console.error && console.error(h);
|
|
@@ -41296,7 +41370,7 @@ postcss.plugin = function e(t, i) {
|
|
|
41296
41370
|
for (var l = arguments.length, c = new Array(l), u = 0; u < l; u++)
|
|
41297
41371
|
c[u] = arguments[u];
|
|
41298
41372
|
console && console.warn && !s && (s = !0, console.warn(t + `: postcss.plugin was deprecated. Migration guide:
|
|
41299
|
-
https://evilmartians.com/chronicles/postcss-8-plugin-migration`), define_process_env_default$
|
|
41373
|
+
https://evilmartians.com/chronicles/postcss-8-plugin-migration`), define_process_env_default$4.LANG && define_process_env_default$4.LANG.startsWith("cn") && console.warn(t + `: 里面 postcss.plugin 被弃用. 迁移指南:
|
|
41300
41374
|
https://www.w3ctech.com/topic/2226`));
|
|
41301
41375
|
var f = i.apply(void 0, [].concat(c));
|
|
41302
41376
|
return f.postcssPlugin = t, f.postcssVersion = new Processor22().version, f;
|
|
@@ -47705,7 +47779,186 @@ function init_as_module(e) {
|
|
|
47705
47779
|
function loadNoop(e, t) {
|
|
47706
47780
|
t();
|
|
47707
47781
|
}
|
|
47708
|
-
var mixpanel = init_as_module(loadNoop),
|
|
47782
|
+
var mixpanel = init_as_module(loadNoop), define_process_env_default$3 = { NODE_ENV: "production", version: "1.93.1", BASE_URL: "https://app.portalapp.games/sdk", ADS_SCRIPT_URL: "https://ads-sdk.portalapp.games/script.js", ASSETS_BASE_URL: "https://sdk.portalapp.games/assets" };
|
|
47783
|
+
const MIXPANEL_TOKEN = "b0d7c97039e244366388b9a210c0b15a", BASE_URL$1 = define_process_env_default$3.BASE_URL, ANALYTICS_ENDPOINT = `${BASE_URL$1.replace(/\/sdk\/?$/, "")}/api/analytics/events`;
|
|
47784
|
+
function getBaseAnalyticsParams() {
|
|
47785
|
+
return {
|
|
47786
|
+
game_id: window.game_id,
|
|
47787
|
+
game_title: window.game_title,
|
|
47788
|
+
game_url: window.location.origin + window.location.pathname
|
|
47789
|
+
};
|
|
47790
|
+
}
|
|
47791
|
+
mixpanel.init(MIXPANEL_TOKEN, {
|
|
47792
|
+
debug: !0,
|
|
47793
|
+
track_pageview: !0,
|
|
47794
|
+
persistence: "localStorage"
|
|
47795
|
+
});
|
|
47796
|
+
const biAnalytics = getAnalytics({
|
|
47797
|
+
endpoint: ANALYTICS_ENDPOINT,
|
|
47798
|
+
getHeaders: () => {
|
|
47799
|
+
var t, i;
|
|
47800
|
+
const e = (i = (t = window.Telegram) == null ? void 0 : t.WebApp) == null ? void 0 : i.initData;
|
|
47801
|
+
return e ? { "X-Auth": e } : null;
|
|
47802
|
+
},
|
|
47803
|
+
debug: define_process_env_default$3.NODE_ENV !== "production"
|
|
47804
|
+
});
|
|
47805
|
+
function getBiSessionId() {
|
|
47806
|
+
return biAnalytics.getSessionId();
|
|
47807
|
+
}
|
|
47808
|
+
class AnalyticsServiceImpl {
|
|
47809
|
+
identify(t) {
|
|
47810
|
+
mixpanel.identify(String(t)), biAnalytics.identify(Number(t));
|
|
47811
|
+
}
|
|
47812
|
+
track(t, i = {}) {
|
|
47813
|
+
mixpanel.track(t, i), biAnalytics.track(t, i);
|
|
47814
|
+
}
|
|
47815
|
+
}
|
|
47816
|
+
const analytics = new AnalyticsServiceImpl(), SESSION_HEADER = "X-Session-Id";
|
|
47817
|
+
class APIRequestError extends Error {
|
|
47818
|
+
constructor({
|
|
47819
|
+
message: t,
|
|
47820
|
+
status: i,
|
|
47821
|
+
responseText: s
|
|
47822
|
+
}) {
|
|
47823
|
+
super(t), this.status = i, this.responseText = s;
|
|
47824
|
+
}
|
|
47825
|
+
}
|
|
47826
|
+
function createMakeRequest(e) {
|
|
47827
|
+
return async function(i, s, o) {
|
|
47828
|
+
e.waitUntilReady && await e.waitUntilReady();
|
|
47829
|
+
const a = `${e.baseUrl}/${i}`;
|
|
47830
|
+
try {
|
|
47831
|
+
const l = e.getAuthData(), c = e.getBotId(), u = {
|
|
47832
|
+
"X-Auth": l || e.getInitData(),
|
|
47833
|
+
"Content-Type": "application/json",
|
|
47834
|
+
[SESSION_HEADER]: getBiSessionId()
|
|
47835
|
+
};
|
|
47836
|
+
if (c && (u["X-Bot-ID"] = c), l) {
|
|
47837
|
+
console.warn("WARNING: AUTH_DATA is used for requests!!!"), console.log("=== API Request Debug ==="), console.log("externalAuthData:", l), console.log("externalAuthData type:", typeof l), console.log("externalAuthData truthy?", !!l), console.log("externalAuthData length:", l == null ? void 0 : l.length), console.log("config.getInitData():", e.getInitData()), console.log("config.getInitData() type:", typeof e.getInitData()), console.log("config.getInitData() truthy?", !!e.getInitData());
|
|
47838
|
+
const d = l || e.getInitData();
|
|
47839
|
+
console.log("X-Auth value (before headers):", d), console.log("X-Auth value type:", typeof d), console.log("X-Auth value truthy?", !!d), console.log("X-Auth value length:", d == null ? void 0 : d.length), u["a-deb"] = l, u["a-deb-string"] = String(l), console.log("Final headers object:", u), u["X-Auth"] || (u["X-Auth"] = l), console.log("Final X-Auth header:", u["X-Auth"]);
|
|
47840
|
+
}
|
|
47841
|
+
const f = await fetch(a, {
|
|
47842
|
+
method: s,
|
|
47843
|
+
headers: u,
|
|
47844
|
+
body: o ? JSON.stringify(o) : null
|
|
47845
|
+
});
|
|
47846
|
+
if (!f.ok)
|
|
47847
|
+
throw new APIRequestError({
|
|
47848
|
+
message: `Request to ${i} failed with status ${f.status}`,
|
|
47849
|
+
status: f.status,
|
|
47850
|
+
responseText: await (async () => {
|
|
47851
|
+
try {
|
|
47852
|
+
return await f.text();
|
|
47853
|
+
} catch {
|
|
47854
|
+
return;
|
|
47855
|
+
}
|
|
47856
|
+
})()
|
|
47857
|
+
});
|
|
47858
|
+
return f.json();
|
|
47859
|
+
} catch (l) {
|
|
47860
|
+
throw l instanceof APIRequestError || console.error(`Error during request to ${i}:`, l), l;
|
|
47861
|
+
}
|
|
47862
|
+
};
|
|
47863
|
+
}
|
|
47864
|
+
const queryClient = new QueryClient({
|
|
47865
|
+
mutationCache: new MutationCache({
|
|
47866
|
+
onError: (e) => {
|
|
47867
|
+
captureException(e);
|
|
47868
|
+
}
|
|
47869
|
+
}),
|
|
47870
|
+
queryCache: new QueryCache({
|
|
47871
|
+
onError: (e) => {
|
|
47872
|
+
captureException(e);
|
|
47873
|
+
}
|
|
47874
|
+
}),
|
|
47875
|
+
defaultOptions: {
|
|
47876
|
+
queries: {
|
|
47877
|
+
staleTime: 5 * 60 * 1e3,
|
|
47878
|
+
// 5 minutes
|
|
47879
|
+
gcTime: 10 * 60 * 1e3,
|
|
47880
|
+
// 10 minutes (formerly cacheTime)
|
|
47881
|
+
refetchOnWindowFocus: !1,
|
|
47882
|
+
refetchOnReconnect: !0,
|
|
47883
|
+
refetchOnMount: !0,
|
|
47884
|
+
retry: (e, t) => {
|
|
47885
|
+
if (t instanceof APIRequestError && t.status === 401)
|
|
47886
|
+
return e < 3;
|
|
47887
|
+
if (t instanceof Error && "status" in t) {
|
|
47888
|
+
const i = t.status;
|
|
47889
|
+
if (i && i >= 400 && i < 500)
|
|
47890
|
+
return !1;
|
|
47891
|
+
}
|
|
47892
|
+
return e < 3;
|
|
47893
|
+
},
|
|
47894
|
+
retryDelay: (e, t) => t instanceof APIRequestError && t.status === 401 ? Math.min(1e3 * 2 ** e, 4e3) : Math.min(1e3 * 2 ** e, 3e4)
|
|
47895
|
+
},
|
|
47896
|
+
mutations: {
|
|
47897
|
+
retry: 1,
|
|
47898
|
+
retryDelay: 1e3
|
|
47899
|
+
}
|
|
47900
|
+
}
|
|
47901
|
+
});
|
|
47902
|
+
function createOverlay(e) {
|
|
47903
|
+
let t = document.getElementById("overlay-root");
|
|
47904
|
+
t = document.createElement("div"), t.id = "overlay-root", document.body.appendChild(t), clientExports.createRoot(t).render(/* @__PURE__ */ jsxRuntimeExports.jsx(OverlayManager, { options: e }));
|
|
47905
|
+
}
|
|
47906
|
+
const OverlayManager = ({ options: e }) => {
|
|
47907
|
+
const t = useCallback(() => {
|
|
47908
|
+
var i;
|
|
47909
|
+
(i = window.Telegram.WebApp) == null || i.openTelegramLink("https://t.me/orbit_portal_bot/app?startapp=profile");
|
|
47910
|
+
}, []);
|
|
47911
|
+
return useEffect(() => {
|
|
47912
|
+
const i = (s) => {
|
|
47913
|
+
s.shiftKey && s.key === "Tab" && (s.preventDefault(), t());
|
|
47914
|
+
};
|
|
47915
|
+
return document.addEventListener("keydown", i), () => {
|
|
47916
|
+
document.removeEventListener("keydown", i);
|
|
47917
|
+
};
|
|
47918
|
+
}, [t]), /* @__PURE__ */ jsxRuntimeExports.jsx(QueryClientProvider, { client: queryClient, children: /* @__PURE__ */ jsxRuntimeExports.jsxs(AppRoot, { children: [
|
|
47919
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(OrientationCheck, {}),
|
|
47920
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("div", { id: "overlay-banner-top", className: "cssdk-banner-container cssdk-banner-top" }),
|
|
47921
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(Suspense, { fallback: null, children: /* @__PURE__ */ jsxRuntimeExports.jsxs(I18nBackendLanguageProvider, { children: [
|
|
47922
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(SnackbarProvider, { children: /* @__PURE__ */ jsxRuntimeExports.jsx(BoxOpeningProvider, { children: /* @__PURE__ */ jsxRuntimeExports.jsxs(ConfettiProvider, { children: [
|
|
47923
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
47924
|
+
OverlayProfile,
|
|
47925
|
+
{
|
|
47926
|
+
variant: (e == null ? void 0 : e.variant) || "translucent",
|
|
47927
|
+
onOpenProfile: () => t(),
|
|
47928
|
+
initialPosition: e == null ? void 0 : e.initialPosition,
|
|
47929
|
+
initialCoordinates: e == null ? void 0 : e.initialCoordinates
|
|
47930
|
+
}
|
|
47931
|
+
),
|
|
47932
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(TopUpModal, {}),
|
|
47933
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(BoxOpeningModal, {}),
|
|
47934
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(ProfileInventoryModal, {})
|
|
47935
|
+
] }) }) }),
|
|
47936
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(EventsStack, {})
|
|
47937
|
+
] }) }),
|
|
47938
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("div", { id: "overlay-banner-bottom", className: "cssdk-banner-container cssdk-banner-bottom" })
|
|
47939
|
+
] }) });
|
|
47940
|
+
};
|
|
47941
|
+
class AbortError extends Error {
|
|
47942
|
+
constructor(t = "The operation was aborted") {
|
|
47943
|
+
super(t), this.name = "AbortError";
|
|
47944
|
+
}
|
|
47945
|
+
}
|
|
47946
|
+
function delay(e, { signal: t } = {}) {
|
|
47947
|
+
return new Promise((i, s) => {
|
|
47948
|
+
const o = () => {
|
|
47949
|
+
s(new AbortError());
|
|
47950
|
+
}, a = () => {
|
|
47951
|
+
clearTimeout(l), o();
|
|
47952
|
+
};
|
|
47953
|
+
if (t != null && t.aborted)
|
|
47954
|
+
return o();
|
|
47955
|
+
const l = setTimeout(() => {
|
|
47956
|
+
t == null || t.removeEventListener("abort", a), i();
|
|
47957
|
+
}, e);
|
|
47958
|
+
t == null || t.addEventListener("abort", a, { once: !0 });
|
|
47959
|
+
});
|
|
47960
|
+
}
|
|
47961
|
+
var lib = {}, uaParser_min$1 = { exports: {} }, uaParser_min = uaParser_min$1.exports, hasRequiredUaParser_min;
|
|
47709
47962
|
function requireUaParser_min() {
|
|
47710
47963
|
return hasRequiredUaParser_min || (hasRequiredUaParser_min = 1, function(e, t) {
|
|
47711
47964
|
(function(i, s) {
|
|
@@ -48116,14 +48369,14 @@ In order to be iterable, non-array objects must have a [Symbol.iterator]() metho
|
|
|
48116
48369
|
};
|
|
48117
48370
|
};
|
|
48118
48371
|
function ne(Z) {
|
|
48119
|
-
var B = Z ? p(Z) : m, G = B.device, oe = B.browser, ue = B.engine, ke = B.os, He = B.ua, tt = q(G.type), or = tt.isBrowser,
|
|
48372
|
+
var B = Z ? p(Z) : m, G = B.device, oe = B.browser, ue = B.engine, ke = B.os, He = B.ua, tt = q(G.type), or = tt.isBrowser, Qn = tt.isMobile, Zn = tt.isTablet, Mr = tt.isSmartTV, Or = tt.isConsole, kr = tt.isWearable, Lr = tt.isEmbedded;
|
|
48120
48373
|
if (or)
|
|
48121
48374
|
return z(or, oe, ue, ke, He);
|
|
48122
48375
|
if (Mr)
|
|
48123
48376
|
return te(Mr, ue, ke, He);
|
|
48124
48377
|
if (Or)
|
|
48125
48378
|
return X(Or, ue, ke, He);
|
|
48126
|
-
if (
|
|
48379
|
+
if (Qn || Zn)
|
|
48127
48380
|
return J(tt, G, ke, He);
|
|
48128
48381
|
if (kr)
|
|
48129
48382
|
return se(kr, ue, ke, He);
|
|
@@ -48297,7 +48550,7 @@ In order to be iterable, non-array objects must have a [Symbol.iterator]() metho
|
|
|
48297
48550
|
isSamsungBrowser: it(oe)
|
|
48298
48551
|
};
|
|
48299
48552
|
}
|
|
48300
|
-
var br = Re(c), xr = me(c), Sr = ae(c),
|
|
48553
|
+
var br = Re(c), xr = me(c), Sr = ae(c), tn = Se(c), rn = Oe(a) || Ue(), nn = he(a), sr = ye(c) || Ue(), Er = pe(c), wr = _e(c) || Ue(), Cr = xe(c), sn = xe(c), Tr = Ie(f), Ar = Fe(f), Rr = Le(f) || Ue(), an = fe(a), ln = be(a), un = de(a), fn = ze(a), Ir = Je(a), dn = Ee(f), hn = ce(f), pn = Pe(a), mn = Be(a), gn = Ve(a), vn = Ae(c), yn = ve(c), _n = Ye(u), bn = It(u), xn = lt(d), Sn = Ce(a) || qe(d), En = le(a), wn = Te(c), Cn = Pt(), Tn = Ue(), An = et(), Rn = Qt(), In = We(), Pn = qe(d), Mn = Ce(a) && !qe(d), On = $e(f), kn = Ne(f), Ln = Ke(a), Dn = it(a), Nn = function(B) {
|
|
48301
48554
|
if (!B || typeof B != "string") {
|
|
48302
48555
|
console.error("No valid user agent string was provided");
|
|
48303
48556
|
return;
|
|
@@ -48310,48 +48563,48 @@ In order to be iterable, non-array objects must have a [Symbol.iterator]() metho
|
|
|
48310
48563
|
engine: He,
|
|
48311
48564
|
ua: tt
|
|
48312
48565
|
});
|
|
48313
|
-
},
|
|
48566
|
+
}, $n = function(B) {
|
|
48314
48567
|
var G = B.renderWithFragment, oe = B.children, ue = $(B, ["renderWithFragment", "children"]);
|
|
48315
48568
|
return Tr ? G ? i.createElement(t.Fragment, null, oe) : i.createElement("div", ue, oe) : null;
|
|
48316
|
-
},
|
|
48569
|
+
}, Fn = function(B) {
|
|
48317
48570
|
var G = B.renderWithFragment, oe = B.children, ue = $(B, ["renderWithFragment", "children"]);
|
|
48318
48571
|
return Cr ? G ? i.createElement(t.Fragment, null, oe) : i.createElement("div", ue, oe) : null;
|
|
48319
|
-
},
|
|
48572
|
+
}, jn = function(B) {
|
|
48320
48573
|
var G = B.renderWithFragment, oe = B.children, ue = $(B, ["renderWithFragment", "children"]);
|
|
48321
48574
|
return Ir ? G ? i.createElement(t.Fragment, null, oe) : i.createElement("div", ue, oe) : null;
|
|
48322
|
-
},
|
|
48575
|
+
}, Bn = function(B) {
|
|
48323
48576
|
var G = B.renderWithFragment, oe = B.children, ue = $(B, ["renderWithFragment", "children"]);
|
|
48324
48577
|
return Rr ? G ? i.createElement(t.Fragment, null, oe) : i.createElement("div", ue, oe) : null;
|
|
48325
|
-
},
|
|
48578
|
+
}, Vn = function(B) {
|
|
48326
48579
|
var G = B.renderWithFragment, oe = B.children, ue = $(B, ["renderWithFragment", "children"]);
|
|
48327
48580
|
return sr ? G ? i.createElement(t.Fragment, null, oe) : i.createElement("div", ue, oe) : null;
|
|
48328
|
-
},
|
|
48581
|
+
}, Un = function(B) {
|
|
48329
48582
|
var G = B.renderWithFragment, oe = B.children, ue = $(B, ["renderWithFragment", "children"]);
|
|
48330
48583
|
return wr ? G ? i.createElement(t.Fragment, null, oe) : i.createElement("div", ue, oe) : null;
|
|
48331
|
-
},
|
|
48584
|
+
}, Gn = function(B) {
|
|
48332
48585
|
var G = B.renderWithFragment, oe = B.children, ue = $(B, ["renderWithFragment", "children"]);
|
|
48333
48586
|
return Ar ? G ? i.createElement(t.Fragment, null, oe) : i.createElement("div", ue, oe) : null;
|
|
48334
|
-
},
|
|
48587
|
+
}, zn = function(B) {
|
|
48335
48588
|
var G = B.renderWithFragment, oe = B.children;
|
|
48336
48589
|
B.viewClassName, B.style;
|
|
48337
48590
|
var ue = $(B, ["renderWithFragment", "children", "viewClassName", "style"]);
|
|
48338
48591
|
return Er ? G ? i.createElement(t.Fragment, null, oe) : i.createElement("div", ue, oe) : null;
|
|
48339
|
-
},
|
|
48592
|
+
}, Wn = function(B) {
|
|
48340
48593
|
var G = B.renderWithFragment, oe = B.children, ue = $(B, ["renderWithFragment", "children"]);
|
|
48341
48594
|
return br ? G ? i.createElement(t.Fragment, null, oe) : i.createElement("div", ue, oe) : null;
|
|
48342
|
-
},
|
|
48595
|
+
}, Hn = function(B) {
|
|
48343
48596
|
var G = B.renderWithFragment, oe = B.children, ue = $(B, ["renderWithFragment", "children"]);
|
|
48344
48597
|
return xr ? G ? i.createElement(t.Fragment, null, oe) : i.createElement("div", ue, oe) : null;
|
|
48345
|
-
},
|
|
48598
|
+
}, qn = function(B) {
|
|
48346
48599
|
var G = B.renderWithFragment, oe = B.children, ue = $(B, ["renderWithFragment", "children"]);
|
|
48347
48600
|
return Sr ? G ? i.createElement(t.Fragment, null, oe) : i.createElement("div", ue, oe) : null;
|
|
48348
|
-
},
|
|
48601
|
+
}, Kn = function(B) {
|
|
48349
48602
|
var G = B.renderWithFragment, oe = B.children;
|
|
48350
48603
|
B.viewClassName, B.style;
|
|
48351
48604
|
var ue = B.condition, ke = $(B, ["renderWithFragment", "children", "viewClassName", "style", "condition"]);
|
|
48352
48605
|
return ue ? G ? i.createElement(t.Fragment, null, oe) : i.createElement("div", ke, oe) : null;
|
|
48353
48606
|
};
|
|
48354
|
-
function
|
|
48607
|
+
function Yn(Z) {
|
|
48355
48608
|
return /* @__PURE__ */ function(B) {
|
|
48356
48609
|
A(G, B);
|
|
48357
48610
|
function G(oe) {
|
|
@@ -48402,7 +48655,7 @@ In order to be iterable, non-array objects must have a [Symbol.iterator]() metho
|
|
|
48402
48655
|
}]), G;
|
|
48403
48656
|
}(i.Component);
|
|
48404
48657
|
}
|
|
48405
|
-
function
|
|
48658
|
+
function Xn() {
|
|
48406
48659
|
var Z = t.useState(function() {
|
|
48407
48660
|
var ke = window.innerWidth > window.innerHeight ? 90 : 0;
|
|
48408
48661
|
return {
|
|
@@ -48428,11 +48681,11 @@ In order to be iterable, non-array objects must have a [Symbol.iterator]() metho
|
|
|
48428
48681
|
var B = Z || window.navigator.userAgent;
|
|
48429
48682
|
return p(B);
|
|
48430
48683
|
}
|
|
48431
|
-
function
|
|
48684
|
+
function Jn(Z) {
|
|
48432
48685
|
var B = Z || window.navigator.userAgent, G = Pr(B), oe = cr(G);
|
|
48433
48686
|
return [oe, G];
|
|
48434
48687
|
}
|
|
48435
|
-
return lib.AndroidView =
|
|
48688
|
+
return lib.AndroidView = $n, lib.BrowserTypes = F, lib.BrowserView = Fn, lib.ConsoleView = Hn, lib.CustomView = Kn, lib.IEView = jn, lib.IOSView = Bn, lib.MobileOnlyView = zn, lib.MobileView = Vn, lib.OsTypes = N, lib.SmartTVView = Wn, lib.TabletView = Un, lib.WearableView = qn, lib.WinPhoneView = Gn, lib.browserName = gn, lib.browserVersion = mn, lib.deviceDetect = ne, lib.deviceType = wn, lib.engineName = _n, lib.engineVersion = bn, lib.fullBrowserVersion = pn, lib.getSelectorsByUserAgent = Nn, lib.getUA = xn, lib.isAndroid = Tr, lib.isBrowser = Cr, lib.isChrome = an, lib.isChromium = nn, lib.isConsole = xr, lib.isDesktop = sn, lib.isEdge = Sn, lib.isEdgeChromium = Pn, lib.isElectron = In, lib.isEmbedded = tn, lib.isFirefox = ln, lib.isIE = Ir, lib.isIOS = Rr, lib.isIOS13 = Cn, lib.isIPad13 = Tn, lib.isIPhone13 = An, lib.isIPod13 = Rn, lib.isLegacyEdge = Mn, lib.isMIUI = Ln, lib.isMacOs = kn, lib.isMobile = sr, lib.isMobileOnly = Er, lib.isMobileSafari = rn, lib.isOpera = fn, lib.isSafari = un, lib.isSamsungBrowser = Dn, lib.isSmartTV = br, lib.isTablet = wr, lib.isWearable = Sr, lib.isWinPhone = Ar, lib.isWindows = On, lib.isYandex = En, lib.mobileModel = yn, lib.mobileVendor = vn, lib.osName = hn, lib.osVersion = dn, lib.parseUserAgent = p, lib.setUserAgent = Y, lib.useDeviceData = Pr, lib.useDeviceSelectors = Jn, lib.useMobileOrientation = Xn, lib.withOrientationChange = Yn, lib;
|
|
48436
48689
|
}
|
|
48437
48690
|
var libExports = requireLib(), dist = {}, ga4 = {}, gtag = {}, hasRequiredGtag;
|
|
48438
48691
|
function requireGtag() {
|
|
@@ -50359,7 +50612,7 @@ const balance$4 = "Balance", topUp$4 = "Top Up", ads$4 = "Ads", adsOn$4 = "On",
|
|
|
50359
50612
|
topUpModal,
|
|
50360
50613
|
inventoryModal
|
|
50361
50614
|
};
|
|
50362
|
-
var define_process_env_default$2 = { NODE_ENV: "production", version: "1.
|
|
50615
|
+
var define_process_env_default$2 = { NODE_ENV: "production", version: "1.93.1", BASE_URL: "https://app.portalapp.games/sdk", ADS_SCRIPT_URL: "https://ads-sdk.portalapp.games/script.js", ASSETS_BASE_URL: "https://sdk.portalapp.games/assets" };
|
|
50363
50616
|
const resources = {
|
|
50364
50617
|
en: {
|
|
50365
50618
|
translation: en
|
|
@@ -50567,9 +50820,9 @@ class BannerManager {
|
|
|
50567
50820
|
}
|
|
50568
50821
|
}
|
|
50569
50822
|
const TELEGRAM_SCRIPT_URL = "https://telegram.org/js/telegram-web-app.js?59";
|
|
50570
|
-
function ensureTelegramWebApp() {
|
|
50823
|
+
async function ensureTelegramWebApp() {
|
|
50571
50824
|
var e;
|
|
50572
|
-
return (e = window.Telegram) != null && e.WebApp ?
|
|
50825
|
+
return (e = window.Telegram) != null && e.WebApp ? window.Telegram.WebApp : new Promise((t, i) => {
|
|
50573
50826
|
const s = document.querySelector('script[src*="telegram-web-app.js"]');
|
|
50574
50827
|
if (s) {
|
|
50575
50828
|
s.addEventListener("load", () => {
|
|
@@ -50860,54 +51113,68 @@ let activityDetectorInstance = null;
|
|
|
50860
51113
|
function getActivityDetector(e) {
|
|
50861
51114
|
return activityDetectorInstance || (activityDetectorInstance = new ActivityDetector(e)), activityDetectorInstance;
|
|
50862
51115
|
}
|
|
50863
|
-
function getBaseAnalyticsParams() {
|
|
50864
|
-
return {
|
|
50865
|
-
game_id: window.game_id,
|
|
50866
|
-
game_title: window.game_title,
|
|
50867
|
-
game_url: window.location.origin + window.location.pathname
|
|
50868
|
-
};
|
|
50869
|
-
}
|
|
50870
51116
|
const log$4 = createAdLogger("Adsgram");
|
|
50871
51117
|
async function showAdsgramAdWithTimeout(e) {
|
|
50872
51118
|
if (!e)
|
|
50873
|
-
return log$4.error("Ad controller not available"),
|
|
51119
|
+
return log$4.error("Ad controller not available"), analytics.track("ad_show_error", {
|
|
50874
51120
|
message: "Adsgram Ad Controller not available",
|
|
50875
51121
|
error_type: "controller_unavailable",
|
|
51122
|
+
error_code: "controller_unavailable",
|
|
50876
51123
|
...getBaseAnalyticsParams(),
|
|
50877
|
-
ad_type: "adsgram"
|
|
51124
|
+
ad_type: "adsgram",
|
|
51125
|
+
provider: "adsgram"
|
|
50878
51126
|
}), !1;
|
|
50879
51127
|
const t = e;
|
|
50880
51128
|
return log$4.group("Showing Ad"), log$4.time("show"), new Promise((i) => {
|
|
50881
51129
|
const s = setTimeout(() => {
|
|
50882
|
-
log$4.timeEnd("show"), log$4.error("Ad request timed out after 5s"), log$4.groupEnd(),
|
|
51130
|
+
log$4.timeEnd("show"), log$4.error("Ad request timed out after 5s"), log$4.groupEnd(), analytics.track("ad_show_error", {
|
|
50883
51131
|
message: "Adsgram ad request timed out after 5 seconds",
|
|
50884
51132
|
error_type: "timeout",
|
|
51133
|
+
error_code: "timeout",
|
|
50885
51134
|
timeout_duration: 5e3,
|
|
50886
51135
|
...getBaseAnalyticsParams(),
|
|
50887
|
-
ad_type: "adsgram"
|
|
51136
|
+
ad_type: "adsgram",
|
|
51137
|
+
provider: "adsgram"
|
|
50888
51138
|
}), i(!1);
|
|
50889
|
-
}, 5e3);
|
|
50890
|
-
|
|
51139
|
+
}, 5e3), o = performance.now();
|
|
51140
|
+
analytics.track("ad_show_started", {
|
|
50891
51141
|
...getBaseAnalyticsParams(),
|
|
50892
|
-
ad_type: "adsgram"
|
|
50893
|
-
|
|
50894
|
-
|
|
51142
|
+
ad_type: "adsgram",
|
|
51143
|
+
provider: "adsgram"
|
|
51144
|
+
}), log$4.info("Starting ad display..."), t.show().then((a) => {
|
|
51145
|
+
clearTimeout(s), log$4.timeEnd("show"), a.done ? (log$4.info("Ad finished successfully", {
|
|
51146
|
+
state: a.state,
|
|
51147
|
+
description: a.description
|
|
51148
|
+
}), analytics.track("ad_show_success", {
|
|
50895
51149
|
...getBaseAnalyticsParams(),
|
|
50896
|
-
ad_type: "adsgram"
|
|
50897
|
-
|
|
51150
|
+
ad_type: "adsgram",
|
|
51151
|
+
provider: "adsgram",
|
|
51152
|
+
duration_ms: Math.round(performance.now() - o)
|
|
51153
|
+
}), log$4.groupEnd(), i(!0)) : (log$4.warn("Ad was not completed", {
|
|
51154
|
+
state: a.state,
|
|
51155
|
+
description: a.description
|
|
51156
|
+
}), analytics.track("ad_show_error", {
|
|
50898
51157
|
message: "Adsgram ad was not completed.",
|
|
50899
51158
|
error_type: "not_completed",
|
|
50900
|
-
|
|
51159
|
+
error_code: "not_completed",
|
|
51160
|
+
result: a,
|
|
50901
51161
|
...getBaseAnalyticsParams(),
|
|
50902
|
-
ad_type: "adsgram"
|
|
51162
|
+
ad_type: "adsgram",
|
|
51163
|
+
provider: "adsgram"
|
|
50903
51164
|
}), log$4.groupEnd(), i(!1));
|
|
50904
|
-
}).catch((
|
|
50905
|
-
clearTimeout(s), log$4.timeEnd("show"), log$4.error("Ad error", {
|
|
51165
|
+
}).catch((a) => {
|
|
51166
|
+
clearTimeout(s), log$4.timeEnd("show"), log$4.error("Ad error", {
|
|
51167
|
+
error: a == null ? void 0 : a.error,
|
|
51168
|
+
state: a == null ? void 0 : a.state,
|
|
51169
|
+
description: a == null ? void 0 : a.description
|
|
51170
|
+
}), log$4.groupEnd(), analytics.track("ad_show_error", {
|
|
50906
51171
|
message: "Adsgram ad threw an error",
|
|
50907
51172
|
error_type: "exception",
|
|
50908
|
-
|
|
51173
|
+
error_code: "exception",
|
|
51174
|
+
error: (a == null ? void 0 : a.error) || String(a),
|
|
50909
51175
|
...getBaseAnalyticsParams(),
|
|
50910
|
-
ad_type: "adsgram"
|
|
51176
|
+
ad_type: "adsgram",
|
|
51177
|
+
provider: "adsgram"
|
|
50911
51178
|
}), i(!1);
|
|
50912
51179
|
});
|
|
50913
51180
|
});
|
|
@@ -50947,40 +51214,49 @@ async function initGigapubAds(e) {
|
|
|
50947
51214
|
}
|
|
50948
51215
|
async function showGigapubAd(e, t) {
|
|
50949
51216
|
const i = crypto.randomUUID();
|
|
50950
|
-
return !window.showGiga || typeof window.showGiga != "function" ? e ? (log$3.warn("showGiga not available, using fallback", { transactionId: i }),
|
|
51217
|
+
return !window.showGiga || typeof window.showGiga != "function" ? e ? (log$3.warn("showGiga not available, using fallback", { transactionId: i }), analytics.track("ad_show_fallback", {
|
|
50951
51218
|
message: "Gigapub showGiga function not available, using fallback.",
|
|
50952
51219
|
...getBaseAnalyticsParams(),
|
|
50953
51220
|
ad_type: "gigapub",
|
|
51221
|
+
provider: "gigapub",
|
|
50954
51222
|
transaction_id: i,
|
|
50955
51223
|
placement_id: t
|
|
50956
|
-
}), await e()) : (
|
|
51224
|
+
}), await e()) : (analytics.track("ad_show_error", {
|
|
50957
51225
|
message: "Gigapub showGiga function not available",
|
|
50958
51226
|
error_type: "function_unavailable",
|
|
51227
|
+
error_code: "function_unavailable",
|
|
50959
51228
|
...getBaseAnalyticsParams(),
|
|
50960
51229
|
ad_type: "gigapub",
|
|
51230
|
+
provider: "gigapub",
|
|
50961
51231
|
transaction_id: i,
|
|
50962
51232
|
placement_id: t
|
|
50963
51233
|
}), !1) : (log$3.group("Showing Ad"), log$3.time("show"), log$3.info("Starting ad display", { transactionId: i, placementId: t }), new Promise((s) => {
|
|
50964
|
-
|
|
51234
|
+
const o = performance.now();
|
|
51235
|
+
analytics.track("ad_show_started", {
|
|
50965
51236
|
...getBaseAnalyticsParams(),
|
|
50966
51237
|
ad_type: "gigapub",
|
|
51238
|
+
provider: "gigapub",
|
|
50967
51239
|
transaction_id: i,
|
|
50968
51240
|
placement_id: t
|
|
50969
51241
|
}), window.showGiga({ transactionId: i, showTag: t }).then(() => {
|
|
50970
|
-
log$3.timeEnd("show"), log$3.info("Ad finished successfully", { transactionId: i, placementId: t }), log$3.groupEnd(),
|
|
51242
|
+
log$3.timeEnd("show"), log$3.info("Ad finished successfully", { transactionId: i, placementId: t }), log$3.groupEnd(), analytics.track("ad_show_success", {
|
|
50971
51243
|
...getBaseAnalyticsParams(),
|
|
50972
51244
|
ad_type: "gigapub",
|
|
51245
|
+
provider: "gigapub",
|
|
50973
51246
|
transaction_id: i,
|
|
50974
|
-
placement_id: t
|
|
51247
|
+
placement_id: t,
|
|
51248
|
+
duration_ms: Math.round(performance.now() - o)
|
|
50975
51249
|
}), s(!0);
|
|
50976
|
-
}).catch((
|
|
50977
|
-
log$3.timeEnd("show"), log$3.error("Ad error", { error:
|
|
51250
|
+
}).catch((a) => {
|
|
51251
|
+
log$3.timeEnd("show"), log$3.error("Ad error", { error: a, transactionId: i, placementId: t }), log$3.groupEnd(), analytics.track("ad_show_error", {
|
|
50978
51252
|
message: "Gigapub ad failed or was skipped",
|
|
50979
51253
|
error_type: "exception",
|
|
50980
|
-
|
|
50981
|
-
|
|
51254
|
+
error_code: "exception",
|
|
51255
|
+
error: a == null ? void 0 : a.toString(),
|
|
51256
|
+
error_message: (a == null ? void 0 : a.message) || "Unknown error",
|
|
50982
51257
|
...getBaseAnalyticsParams(),
|
|
50983
51258
|
ad_type: "gigapub",
|
|
51259
|
+
provider: "gigapub",
|
|
50984
51260
|
transaction_id: i,
|
|
50985
51261
|
placement_id: t
|
|
50986
51262
|
}), s(!1);
|
|
@@ -51037,48 +51313,58 @@ function createMonetagFallbackFunction(e, t) {
|
|
|
51037
51313
|
}
|
|
51038
51314
|
async function showMonetagAd(e, t, i) {
|
|
51039
51315
|
if (log$2.group("Showing Ad"), log$2.time("show"), log$2.info("Starting ad display", { fnName: e, ymid: t, placementId: i }), !e)
|
|
51040
|
-
return log$2.error("Ad function name not found"), log$2.timeEnd("show"), log$2.groupEnd(),
|
|
51316
|
+
return log$2.error("Ad function name not found"), log$2.timeEnd("show"), log$2.groupEnd(), analytics.track("ad_show_error", {
|
|
51041
51317
|
message: "Monetag ad function name not found",
|
|
51042
51318
|
error_type: "function_name_missing",
|
|
51319
|
+
error_code: "function_name_missing",
|
|
51043
51320
|
...getBaseAnalyticsParams(),
|
|
51044
51321
|
ad_type: "monetag",
|
|
51322
|
+
provider: "monetag",
|
|
51045
51323
|
placement_id: i
|
|
51046
51324
|
}), !1;
|
|
51047
51325
|
const s = window[e];
|
|
51048
51326
|
if (typeof s != "function")
|
|
51049
|
-
return log$2.error("Ad function not found on window", { fnName: e }), log$2.timeEnd("show"), log$2.groupEnd(),
|
|
51327
|
+
return log$2.error("Ad function not found on window", { fnName: e }), log$2.timeEnd("show"), log$2.groupEnd(), analytics.track("ad_show_error", {
|
|
51050
51328
|
message: "Monetag ad function not found on window object",
|
|
51051
51329
|
error_type: "function_unavailable",
|
|
51330
|
+
error_code: "function_unavailable",
|
|
51052
51331
|
function_name: e,
|
|
51053
51332
|
...getBaseAnalyticsParams(),
|
|
51054
51333
|
ad_type: "monetag",
|
|
51334
|
+
provider: "monetag",
|
|
51055
51335
|
placement_id: i
|
|
51056
51336
|
}), !1;
|
|
51057
51337
|
const o = i ? `orbit-${i}` : "orbit";
|
|
51058
51338
|
return new Promise((a) => {
|
|
51059
|
-
|
|
51339
|
+
const l = performance.now();
|
|
51340
|
+
analytics.track("ad_show_started", {
|
|
51060
51341
|
...getBaseAnalyticsParams(),
|
|
51061
51342
|
ad_type: "monetag",
|
|
51343
|
+
provider: "monetag",
|
|
51062
51344
|
placement_id: i
|
|
51063
51345
|
}), s({ ymid: t, requestVar: o, timeout: 5 }).then(() => {
|
|
51064
|
-
log$2.timeEnd("show"), log$2.info("Ad watched successfully", { placementId: i }), log$2.groupEnd(),
|
|
51346
|
+
log$2.timeEnd("show"), log$2.info("Ad watched successfully", { placementId: i }), log$2.groupEnd(), analytics.track("ad_show_success", {
|
|
51065
51347
|
...getBaseAnalyticsParams(),
|
|
51066
51348
|
ad_type: "monetag",
|
|
51067
|
-
|
|
51349
|
+
provider: "monetag",
|
|
51350
|
+
placement_id: i,
|
|
51351
|
+
duration_ms: Math.round(performance.now() - l)
|
|
51068
51352
|
}), a(!0);
|
|
51069
|
-
}).catch((
|
|
51070
|
-
log$2.timeEnd("show"), log$2.error("Ad failed or was skipped", { error:
|
|
51353
|
+
}).catch((c) => {
|
|
51354
|
+
log$2.timeEnd("show"), log$2.error("Ad failed or was skipped", { error: c, placementId: i }), log$2.groupEnd(), analytics.track("ad_show_error", {
|
|
51071
51355
|
message: "Monetag ad failed or was skipped",
|
|
51072
51356
|
error_type: "ad_failed",
|
|
51073
|
-
|
|
51357
|
+
error_code: "ad_failed",
|
|
51358
|
+
error: String(c),
|
|
51074
51359
|
...getBaseAnalyticsParams(),
|
|
51075
51360
|
ad_type: "monetag",
|
|
51361
|
+
provider: "monetag",
|
|
51076
51362
|
placement_id: i
|
|
51077
51363
|
}), a(!1);
|
|
51078
51364
|
});
|
|
51079
51365
|
});
|
|
51080
51366
|
}
|
|
51081
|
-
var define_process_env_default$1 = { NODE_ENV: "production", version: "1.
|
|
51367
|
+
var define_process_env_default$1 = { NODE_ENV: "production", version: "1.93.1", BASE_URL: "https://app.portalapp.games/sdk", ADS_SCRIPT_URL: "https://ads-sdk.portalapp.games/script.js", ASSETS_BASE_URL: "https://sdk.portalapp.games/assets" };
|
|
51082
51368
|
const log$1 = createAdLogger("Orbit");
|
|
51083
51369
|
async function initOrbitAds() {
|
|
51084
51370
|
log$1.group("Initialization"), log$1.time("init"), log$1.info("Loading script...");
|
|
@@ -51105,59 +51391,70 @@ async function initOrbitAds() {
|
|
|
51105
51391
|
async function showOrbitAd(e, t) {
|
|
51106
51392
|
const i = crypto.randomUUID();
|
|
51107
51393
|
if (!window.showOrbitAds || typeof window.showOrbitAds != "function")
|
|
51108
|
-
return e ? (log$1.warn("showOrbitAds not available, using fallback", { transactionId: i }),
|
|
51394
|
+
return e ? (log$1.warn("showOrbitAds not available, using fallback", { transactionId: i }), analytics.track("ad_show_fallback", {
|
|
51109
51395
|
message: "Orbit showOrbitAds function not available, using fallback.",
|
|
51110
51396
|
...getBaseAnalyticsParams(),
|
|
51111
51397
|
ad_type: "orbit",
|
|
51398
|
+
provider: "orbit",
|
|
51112
51399
|
transaction_id: i
|
|
51113
|
-
}), await e()) : (
|
|
51400
|
+
}), await e()) : (analytics.track("ad_show_error", {
|
|
51114
51401
|
message: "Orbit showOrbitAds function not available",
|
|
51115
51402
|
error_type: "function_unavailable",
|
|
51403
|
+
error_code: "function_unavailable",
|
|
51116
51404
|
...getBaseAnalyticsParams(),
|
|
51117
51405
|
ad_type: "orbit",
|
|
51406
|
+
provider: "orbit",
|
|
51118
51407
|
transaction_id: i
|
|
51119
51408
|
}), !1);
|
|
51120
|
-
|
|
51409
|
+
const s = performance.now();
|
|
51410
|
+
analytics.track("ad_show_started", {
|
|
51121
51411
|
...getBaseAnalyticsParams(),
|
|
51122
51412
|
ad_type: "orbit",
|
|
51413
|
+
provider: "orbit",
|
|
51123
51414
|
transaction_id: i
|
|
51124
51415
|
}), log$1.group("Showing Ad"), log$1.time("show"), log$1.info("Starting ad display", { transactionId: i, ...t });
|
|
51125
51416
|
try {
|
|
51126
|
-
const
|
|
51127
|
-
if (log$1.timeEnd("show"), log$1.info("showOrbitAds resolved", { response:
|
|
51128
|
-
return
|
|
51417
|
+
const o = await window.showOrbitAds(t);
|
|
51418
|
+
if (log$1.timeEnd("show"), log$1.info("showOrbitAds resolved", { response: o, transactionId: i }), o.is_direct_sales)
|
|
51419
|
+
return analytics.track("ad_show_success", {
|
|
51129
51420
|
...getBaseAnalyticsParams(),
|
|
51130
51421
|
ad_type: "orbit",
|
|
51131
|
-
|
|
51422
|
+
provider: "orbit",
|
|
51423
|
+
transaction_id: i,
|
|
51424
|
+
duration_ms: Math.round(performance.now() - s)
|
|
51132
51425
|
}), log$1.info("Ad shown successfully (internal ad)"), log$1.groupEnd(), !0;
|
|
51133
|
-
if (log$1.warn("is_direct_sales=false, falling back to provider", { transactionId: i }),
|
|
51426
|
+
if (log$1.warn("is_direct_sales=false, falling back to provider", { transactionId: i }), analytics.track("ad_show_fallback", {
|
|
51134
51427
|
message: "Orbit has no ad available, falling back to provider network.",
|
|
51135
51428
|
...getBaseAnalyticsParams(),
|
|
51136
51429
|
ad_type: "orbit",
|
|
51430
|
+
provider: "orbit",
|
|
51137
51431
|
transaction_id: i
|
|
51138
51432
|
}), e) {
|
|
51139
|
-
const
|
|
51140
|
-
return log$1.info("Fallback result", { result:
|
|
51433
|
+
const a = await e();
|
|
51434
|
+
return log$1.info("Fallback result", { result: a, transactionId: i }), log$1.groupEnd(), a;
|
|
51141
51435
|
}
|
|
51142
51436
|
return log$1.groupEnd(), !1;
|
|
51143
|
-
} catch (
|
|
51144
|
-
if (log$1.timeEnd("show"), log$1.error("Ad error", { error:
|
|
51437
|
+
} catch (o) {
|
|
51438
|
+
if (log$1.timeEnd("show"), log$1.error("Ad error", { error: o, transactionId: i }), analytics.track("ad_show_error", {
|
|
51145
51439
|
message: "Orbit ad failed or was skipped",
|
|
51146
51440
|
error_type: "exception",
|
|
51147
|
-
|
|
51148
|
-
|
|
51441
|
+
error_code: "exception",
|
|
51442
|
+
error: o instanceof Error ? o.toString() : String(o),
|
|
51443
|
+
error_message: o instanceof Error ? o.message : "Unknown error",
|
|
51149
51444
|
...getBaseAnalyticsParams(),
|
|
51150
51445
|
ad_type: "orbit",
|
|
51446
|
+
provider: "orbit",
|
|
51151
51447
|
transaction_id: i
|
|
51152
51448
|
}), e) {
|
|
51153
|
-
log$1.warn("Error occurred, using fallback provider", { transactionId: i }),
|
|
51449
|
+
log$1.warn("Error occurred, using fallback provider", { transactionId: i }), analytics.track("ad_show_fallback", {
|
|
51154
51450
|
message: "Orbit ad errored, falling back to provider network.",
|
|
51155
51451
|
...getBaseAnalyticsParams(),
|
|
51156
51452
|
ad_type: "orbit",
|
|
51453
|
+
provider: "orbit",
|
|
51157
51454
|
transaction_id: i
|
|
51158
51455
|
});
|
|
51159
|
-
const
|
|
51160
|
-
return log$1.info("Fallback result after error", { result:
|
|
51456
|
+
const a = await e();
|
|
51457
|
+
return log$1.info("Fallback result after error", { result: a, transactionId: i }), log$1.groupEnd(), a;
|
|
51161
51458
|
}
|
|
51162
51459
|
return log$1.groupEnd(), !1;
|
|
51163
51460
|
}
|
|
@@ -51168,65 +51465,78 @@ async function checkAdStatus(e) {
|
|
|
51168
51465
|
log.info("Checking ad status", { adId: e });
|
|
51169
51466
|
const t = await fetch(`https://sp.tmanetwork.tech/bid_info?id=${e}`);
|
|
51170
51467
|
if (t.status === 204)
|
|
51171
|
-
return log.info("Ad status: NOT_SHOWED (204)", { adId: e }),
|
|
51468
|
+
return log.info("Ad status: NOT_SHOWED (204)", { adId: e }), analytics.track("ad_status_not_showed", {
|
|
51172
51469
|
...getBaseAnalyticsParams(),
|
|
51173
51470
|
ad_id: e,
|
|
51174
|
-
ad_type: "tma"
|
|
51471
|
+
ad_type: "tma",
|
|
51472
|
+
provider: "tma"
|
|
51175
51473
|
}), "NOT_SHOWED";
|
|
51176
51474
|
if (!t.ok)
|
|
51177
51475
|
throw new Error(`Failed to check ad status: ${t.status}`);
|
|
51178
51476
|
const i = await t.json();
|
|
51179
|
-
return i.click_created ? (log.info("Ad status: CLICKED", { adId: e }),
|
|
51477
|
+
return i.click_created ? (log.info("Ad status: CLICKED", { adId: e }), analytics.track("ad_status_clicked", {
|
|
51180
51478
|
...getBaseAnalyticsParams(),
|
|
51181
51479
|
ad_id: e,
|
|
51182
|
-
ad_type: "tma"
|
|
51183
|
-
|
|
51480
|
+
ad_type: "tma",
|
|
51481
|
+
provider: "tma"
|
|
51482
|
+
}), "CLICKED") : i.imp_created ? (log.info("Ad status: SHOWED", { adId: e }), analytics.track("ad_status_showed", {
|
|
51184
51483
|
...getBaseAnalyticsParams(),
|
|
51185
51484
|
ad_id: e,
|
|
51186
|
-
ad_type: "tma"
|
|
51187
|
-
|
|
51485
|
+
ad_type: "tma",
|
|
51486
|
+
provider: "tma"
|
|
51487
|
+
}), "SHOWED") : (log.info("Ad status: NOT_SHOWED (no imp/click)", { adId: e }), analytics.track("ad_status_not_showed", {
|
|
51188
51488
|
...getBaseAnalyticsParams(),
|
|
51189
51489
|
ad_id: e,
|
|
51190
|
-
ad_type: "tma"
|
|
51490
|
+
ad_type: "tma",
|
|
51491
|
+
provider: "tma"
|
|
51191
51492
|
}), "NOT_SHOWED");
|
|
51192
51493
|
} catch (t) {
|
|
51193
|
-
throw log.error("Error checking ad status", { adId: e, error: t }),
|
|
51494
|
+
throw log.error("Error checking ad status", { adId: e, error: t }), analytics.track("ad_status_error", {
|
|
51194
51495
|
...getBaseAnalyticsParams(),
|
|
51195
51496
|
ad_id: e,
|
|
51196
|
-
ad_type: "tma"
|
|
51497
|
+
ad_type: "tma",
|
|
51498
|
+
provider: "tma"
|
|
51197
51499
|
}), t;
|
|
51198
51500
|
}
|
|
51199
51501
|
}
|
|
51200
51502
|
async function showAd(e = {}) {
|
|
51201
51503
|
if (!window.TMANetwork) {
|
|
51202
51504
|
const t = new Error("TMANetwork is not available");
|
|
51203
|
-
throw log.error("TMANetwork not available on window"),
|
|
51505
|
+
throw log.error("TMANetwork not available on window"), analytics.track("ad_show_error", {
|
|
51204
51506
|
message: "TMANetwork is not available",
|
|
51205
51507
|
error_type: "sdk_unavailable",
|
|
51508
|
+
error_code: "sdk_unavailable",
|
|
51206
51509
|
...getBaseAnalyticsParams(),
|
|
51207
|
-
ad_type: "tma"
|
|
51510
|
+
ad_type: "tma",
|
|
51511
|
+
provider: "tma"
|
|
51208
51512
|
}), t;
|
|
51209
51513
|
}
|
|
51210
51514
|
if (window.TMANetwork.hasInterstitialAd()) {
|
|
51211
51515
|
log.info("Ad already loaded, showing immediately"), e.onStart && e.onStart();
|
|
51212
51516
|
try {
|
|
51213
|
-
|
|
51517
|
+
const t = performance.now();
|
|
51518
|
+
analytics.track("ad_show_started", {
|
|
51214
51519
|
...getBaseAnalyticsParams(),
|
|
51215
|
-
ad_type: "tma"
|
|
51520
|
+
ad_type: "tma",
|
|
51521
|
+
provider: "tma"
|
|
51216
51522
|
});
|
|
51217
|
-
const
|
|
51218
|
-
return log.info("Ad shown successfully", { adId:
|
|
51523
|
+
const i = await window.TMANetwork.showInterstitialAd();
|
|
51524
|
+
return log.info("Ad shown successfully", { adId: i.id }), analytics.track("ad_show_success", {
|
|
51219
51525
|
...getBaseAnalyticsParams(),
|
|
51220
51526
|
ad_type: "tma",
|
|
51221
|
-
|
|
51222
|
-
|
|
51527
|
+
provider: "tma",
|
|
51528
|
+
ad_id: i.id,
|
|
51529
|
+
duration_ms: Math.round(performance.now() - t)
|
|
51530
|
+
}), window.TMANetwork.reloadAd(), i;
|
|
51223
51531
|
} catch (t) {
|
|
51224
|
-
throw log.error("Error showing preloaded ad", t),
|
|
51532
|
+
throw log.error("Error showing preloaded ad", t), analytics.track("ad_show_error", {
|
|
51225
51533
|
message: t instanceof Error ? t.message : "Unknown error showing TMA ad",
|
|
51226
51534
|
error_type: "exception",
|
|
51535
|
+
error_code: "exception",
|
|
51227
51536
|
error: t instanceof Error ? t.toString() : String(t),
|
|
51228
51537
|
...getBaseAnalyticsParams(),
|
|
51229
|
-
ad_type: "tma"
|
|
51538
|
+
ad_type: "tma",
|
|
51539
|
+
provider: "tma"
|
|
51230
51540
|
}), t;
|
|
51231
51541
|
}
|
|
51232
51542
|
}
|
|
@@ -51236,26 +51546,31 @@ async function showAd(e = {}) {
|
|
|
51236
51546
|
if (!s) {
|
|
51237
51547
|
s = !0;
|
|
51238
51548
|
try {
|
|
51239
|
-
log.info("onAdLoaded event received"),
|
|
51549
|
+
log.info("onAdLoaded event received"), analytics.track("ad_load_event_received", {
|
|
51240
51550
|
...getBaseAnalyticsParams(),
|
|
51241
|
-
ad_type: "tma"
|
|
51242
|
-
|
|
51551
|
+
ad_type: "tma",
|
|
51552
|
+
provider: "tma"
|
|
51553
|
+
}), e.onStart && e.onStart(), analytics.track("ad_show_started", {
|
|
51243
51554
|
...getBaseAnalyticsParams(),
|
|
51244
|
-
ad_type: "tma"
|
|
51555
|
+
ad_type: "tma",
|
|
51556
|
+
provider: "tma"
|
|
51245
51557
|
});
|
|
51246
51558
|
const a = await window.TMANetwork.showInterstitialAd();
|
|
51247
|
-
log.info("Ad shown successfully after load", { adId: a.id }),
|
|
51559
|
+
log.info("Ad shown successfully after load", { adId: a.id }), analytics.track("ad_load_success", {
|
|
51248
51560
|
...getBaseAnalyticsParams(),
|
|
51249
51561
|
ad_type: "tma",
|
|
51562
|
+
provider: "tma",
|
|
51250
51563
|
ad_id: a.id
|
|
51251
51564
|
}), window.TMANetwork.reloadAd(), t(a);
|
|
51252
51565
|
} catch (a) {
|
|
51253
|
-
log.error("Error showing ad after load event", a),
|
|
51566
|
+
log.error("Error showing ad after load event", a), analytics.track("ad_load_error", {
|
|
51254
51567
|
message: a instanceof Error ? a.message : "Unknown error loading TMA ad",
|
|
51255
51568
|
error_type: "load_exception",
|
|
51569
|
+
error_code: "load_exception",
|
|
51256
51570
|
error: a instanceof Error ? a.toString() : String(a),
|
|
51257
51571
|
...getBaseAnalyticsParams(),
|
|
51258
|
-
ad_type: "tma"
|
|
51572
|
+
ad_type: "tma",
|
|
51573
|
+
provider: "tma"
|
|
51259
51574
|
}), i(a);
|
|
51260
51575
|
}
|
|
51261
51576
|
}
|
|
@@ -51264,12 +51579,14 @@ async function showAd(e = {}) {
|
|
|
51264
51579
|
if (!s) {
|
|
51265
51580
|
s = !0;
|
|
51266
51581
|
const a = new Error("Ad load timeout");
|
|
51267
|
-
log.error("Ad load timeout after 10s"),
|
|
51582
|
+
log.error("Ad load timeout after 10s"), analytics.track("ad_load_timeout", {
|
|
51268
51583
|
message: "Ad load timeout after 10 seconds",
|
|
51269
51584
|
error_type: "timeout",
|
|
51585
|
+
error_code: "timeout",
|
|
51270
51586
|
timeout_duration: 1e4,
|
|
51271
51587
|
...getBaseAnalyticsParams(),
|
|
51272
|
-
ad_type: "tma"
|
|
51588
|
+
ad_type: "tma",
|
|
51589
|
+
provider: "tma"
|
|
51273
51590
|
}), i(a);
|
|
51274
51591
|
}
|
|
51275
51592
|
}, 1e4), window.TMANetwork.addEventListener("onAdLoaded", o);
|
|
@@ -51277,17 +51594,18 @@ async function showAd(e = {}) {
|
|
|
51277
51594
|
}
|
|
51278
51595
|
function loadTMANetworkScript() {
|
|
51279
51596
|
return new Promise((e, t) => {
|
|
51280
|
-
if (log.group("Script Load"), log.time("scriptLoad"),
|
|
51597
|
+
if (log.group("Script Load"), log.time("scriptLoad"), analytics.track("tma_script_load_requested", getBaseAnalyticsParams()), document.querySelector('script[src="https://files.tmanetwork.tech/tmanetwork.min.js"]')) {
|
|
51281
51598
|
log.info("Script already loaded (skipping)"), log.timeEnd("scriptLoad"), log.groupEnd(), e();
|
|
51282
51599
|
return;
|
|
51283
51600
|
}
|
|
51284
51601
|
const i = document.createElement("script");
|
|
51285
51602
|
i.src = "https://files.tmanetwork.tech/tmanetwork.min.js", i.async = !0, i.onload = () => {
|
|
51286
|
-
log.timeEnd("scriptLoad"), log.info("Script loaded successfully"), log.groupEnd(),
|
|
51603
|
+
log.timeEnd("scriptLoad"), log.info("Script loaded successfully"), log.groupEnd(), analytics.track("tma_script_load_success", getBaseAnalyticsParams()), e();
|
|
51287
51604
|
}, i.onerror = (s) => {
|
|
51288
|
-
log.timeEnd("scriptLoad"), log.error("Failed to load script", s), log.groupEnd(),
|
|
51605
|
+
log.timeEnd("scriptLoad"), log.error("Failed to load script", s), log.groupEnd(), analytics.track("tma_script_load_error", {
|
|
51289
51606
|
message: "Failed to load TMANetwork script",
|
|
51290
51607
|
error_type: "script_load_failed",
|
|
51608
|
+
error_code: "script_load_failed",
|
|
51291
51609
|
error: String(s),
|
|
51292
51610
|
...getBaseAnalyticsParams()
|
|
51293
51611
|
}), captureException(s), t(new Error("Failed to load TMANetwork script"));
|
|
@@ -51296,8 +51614,9 @@ function loadTMANetworkScript() {
|
|
|
51296
51614
|
}
|
|
51297
51615
|
function initSentry() {
|
|
51298
51616
|
init({
|
|
51299
|
-
dsn: "https://
|
|
51617
|
+
dsn: "https://15f2f3a80cbbee5f94c302756f8595d5@o4509677809172480.ingest.de.sentry.io/4509677817364560",
|
|
51300
51618
|
sendDefaultPii: !0,
|
|
51619
|
+
sampleRate: 0.01,
|
|
51301
51620
|
// Дедупликация: одинаковые ошибки не отправляются повторно
|
|
51302
51621
|
integrations: [dedupeIntegration()],
|
|
51303
51622
|
// Лимит на количество ошибок в минуту
|
|
@@ -51395,10 +51714,46 @@ function throttleLeading(e, t) {
|
|
|
51395
51714
|
return o - i >= t ? (i = o, e.apply(this, s)) : (console.log(`Function is throttled. Next call available in ${t - (o - i)}ms`), Promise.resolve(!1));
|
|
51396
51715
|
};
|
|
51397
51716
|
}
|
|
51398
|
-
|
|
51399
|
-
|
|
51400
|
-
|
|
51401
|
-
|
|
51717
|
+
const RPC_REQUEST = "orbit-sdk:rpc-request", RPC_RESPONSE = "orbit-sdk:rpc-response", RPC_EVENT = "orbit-sdk:rpc-event", RPC_TIMEOUT_MS = 3e4;
|
|
51718
|
+
function isInIframe() {
|
|
51719
|
+
var e, t;
|
|
51720
|
+
return window.parent !== window && !((t = (e = window.Telegram) == null ? void 0 : e.WebApp) != null && t.initData);
|
|
51721
|
+
}
|
|
51722
|
+
function callParent(e, ...t) {
|
|
51723
|
+
const i = crypto.randomUUID();
|
|
51724
|
+
return new Promise((s, o) => {
|
|
51725
|
+
const a = setTimeout(() => {
|
|
51726
|
+
window.removeEventListener("message", l), o(new Error(`SDK RPC call "${e}" timed out after ${RPC_TIMEOUT_MS}ms`));
|
|
51727
|
+
}, RPC_TIMEOUT_MS);
|
|
51728
|
+
function l(c) {
|
|
51729
|
+
const u = c.data;
|
|
51730
|
+
(u == null ? void 0 : u.type) !== RPC_RESPONSE || u.id !== i || (clearTimeout(a), window.removeEventListener("message", l), u.error ? o(new Error(u.error)) : s(u.result));
|
|
51731
|
+
}
|
|
51732
|
+
window.addEventListener("message", l), window.parent.postMessage({ type: RPC_REQUEST, id: i, method: e, args: t }, "*");
|
|
51733
|
+
});
|
|
51734
|
+
}
|
|
51735
|
+
function createIframeSdk() {
|
|
51736
|
+
let e = null, t = null;
|
|
51737
|
+
return window.addEventListener("message", (i) => {
|
|
51738
|
+
var a;
|
|
51739
|
+
if (((a = i.data) == null ? void 0 : a.type) !== RPC_EVENT) return;
|
|
51740
|
+
const { event: s, args: o } = i.data;
|
|
51741
|
+
s === "onAdStart" && e ? e() : s === "onAdEnd" && t && t(o[0]);
|
|
51742
|
+
}), new Proxy({}, {
|
|
51743
|
+
get(i, s) {
|
|
51744
|
+
return s === "onAdStart" ? e : s === "onAdEnd" ? t : s === "version" ? "__IFRAME_RPC__" : s === "getAdsgramController" ? () => null : s === "telegramCloudStorage" ? null : (...o) => callParent(s, ...o);
|
|
51745
|
+
},
|
|
51746
|
+
set(i, s, o) {
|
|
51747
|
+
return s === "onAdStart" ? (e = o, !0) : (s === "onAdEnd" && (t = o), !0);
|
|
51748
|
+
}
|
|
51749
|
+
});
|
|
51750
|
+
}
|
|
51751
|
+
var define_process_env_default = { NODE_ENV: "production", version: "1.93.1", BASE_URL: "https://app.portalapp.games/sdk", ADS_SCRIPT_URL: "https://ads-sdk.portalapp.games/script.js", ASSETS_BASE_URL: "https://sdk.portalapp.games/assets" }, qr, Kr;
|
|
51752
|
+
const _isThirdPartyIframe = window.parent !== window && !((Kr = (qr = window.Telegram) == null ? void 0 : qr.WebApp) != null && Kr.initData);
|
|
51753
|
+
_isThirdPartyIframe || (ensureViewportMetaTag(), initSentry());
|
|
51754
|
+
const adLog = createAdLogger("SDK");
|
|
51755
|
+
let gameInitializedAt = null;
|
|
51756
|
+
const CloudStorageGetItem = (e) => new Promise((t, i) => {
|
|
51402
51757
|
getTelegramWebApp().CloudStorage.getItem(e, (s, o) => {
|
|
51403
51758
|
s ? i(new Error(s)) : t(o ?? null);
|
|
51404
51759
|
});
|
|
@@ -51580,14 +51935,10 @@ function startGameTimeTrack() {
|
|
|
51580
51935
|
CryptoSteamSDK.trackGameTimeTick();
|
|
51581
51936
|
}, trackTimeEveryS * 1e3);
|
|
51582
51937
|
}
|
|
51583
|
-
var
|
|
51938
|
+
var Yr, Xr, Jr, Qr;
|
|
51584
51939
|
try {
|
|
51585
|
-
const e = (
|
|
51586
|
-
|
|
51587
|
-
debug: !0,
|
|
51588
|
-
track_pageview: !0,
|
|
51589
|
-
persistence: "localStorage"
|
|
51590
|
-
}), e && mixpanel.identify(String(e)), mixpanel.track("sdk_initialized", getBaseAnalyticsParams());
|
|
51940
|
+
const e = (Qr = (Jr = (Xr = (Yr = window.Telegram) == null ? void 0 : Yr.WebApp) == null ? void 0 : Xr.initDataUnsafe) == null ? void 0 : Jr.user) == null ? void 0 : Qr.id;
|
|
51941
|
+
e && analytics.identify(e), analytics.track("sdk_initialized", getBaseAnalyticsParams());
|
|
51591
51942
|
} catch (e) {
|
|
51592
51943
|
console.error(e);
|
|
51593
51944
|
}
|
|
@@ -51664,7 +52015,7 @@ const CryptoSteamSDK = {
|
|
|
51664
52015
|
adLog.error("Monetag fallback: failed to initialize", f);
|
|
51665
52016
|
}
|
|
51666
52017
|
}
|
|
51667
|
-
adLog.timeEnd("fullInit"), adLog.info("Ads network fully initialized", { provider: adType, orbitInitialized }), adLog.groupEnd(), (s = a == null ? void 0 : a.audiences) != null && s[0] &&
|
|
52018
|
+
adLog.timeEnd("fullInit"), adLog.info("Ads network fully initialized", { provider: adType, orbitInitialized }), adLog.groupEnd(), (s = a == null ? void 0 : a.audiences) != null && s[0] && analytics.track("$experiment_started", {
|
|
51668
52019
|
"Experiment name": "start_page_ab",
|
|
51669
52020
|
"Variant name": (o = a == null ? void 0 : a.audiences) == null ? void 0 : o[0]
|
|
51670
52021
|
});
|
|
@@ -51681,14 +52032,14 @@ const CryptoSteamSDK = {
|
|
|
51681
52032
|
console.error("Config not found");
|
|
51682
52033
|
return;
|
|
51683
52034
|
}
|
|
51684
|
-
|
|
52035
|
+
analytics.identify(String(a.id)), window.game_id = a.game_id, window.game_title = l.title, ReactGA.initialize(G_MEASUREMENT_ID, {
|
|
51685
52036
|
gaOptions: {
|
|
51686
52037
|
userId: a.id,
|
|
51687
52038
|
gameId: a.game_id
|
|
51688
52039
|
}
|
|
51689
52040
|
}), ReactGA.event("init", {
|
|
51690
52041
|
gameId: a.game_id
|
|
51691
|
-
}),
|
|
52042
|
+
}), gameInitializedAt = performance.now(), analytics.track("game_initialized", {
|
|
51692
52043
|
game_id: a.game_id,
|
|
51693
52044
|
game_title: l.title
|
|
51694
52045
|
}), !isPortal && !(t != null && t.disable_startup_ads) && CryptoSteamSDK.requestAd().catch((c) => {
|
|
@@ -51727,9 +52078,10 @@ const CryptoSteamSDK = {
|
|
|
51727
52078
|
}), (i = CryptoSteamSDK.onAdEnd) == null || i.call(CryptoSteamSDK, !1), adLog.timeEnd("requestAd"), adLog.groupEnd(), !1;
|
|
51728
52079
|
if (l.ads_free && !isPortal)
|
|
51729
52080
|
return adLog.warn("Skipped: profile has ads_free flag"), (s = CryptoSteamSDK.onAdEnd) == null || s.call(CryptoSteamSDK, !1), adLog.timeEnd("requestAd"), adLog.groupEnd(), !1;
|
|
51730
|
-
|
|
52081
|
+
analytics.track("ad_show_requested", {
|
|
51731
52082
|
...getBaseAnalyticsParams(),
|
|
51732
52083
|
ad_type: orbitInitialized ? "orbit" : adType,
|
|
52084
|
+
provider: orbitInitialized ? "orbit" : adType,
|
|
51733
52085
|
placement_id: e.placementId
|
|
51734
52086
|
});
|
|
51735
52087
|
const f = async () => {
|
|
@@ -51752,11 +52104,13 @@ const CryptoSteamSDK = {
|
|
|
51752
52104
|
);
|
|
51753
52105
|
return await showGigapubAd(h, e.placementId);
|
|
51754
52106
|
}
|
|
51755
|
-
return adLog.error("Ad network not initialized or not supported", { adType }),
|
|
52107
|
+
return adLog.error("Ad network not initialized or not supported", { adType }), analytics.track("ad_show_error", {
|
|
51756
52108
|
...getBaseAnalyticsParams(),
|
|
51757
52109
|
message: "Ad network not initialized or not supported",
|
|
51758
52110
|
ad_type: adType,
|
|
52111
|
+
provider: adType,
|
|
51759
52112
|
error_type: "unsupported_network",
|
|
52113
|
+
error_code: "unsupported_network",
|
|
51760
52114
|
placement_id: e.placementId
|
|
51761
52115
|
}), !1;
|
|
51762
52116
|
};
|
|
@@ -51776,11 +52130,13 @@ const CryptoSteamSDK = {
|
|
|
51776
52130
|
d = await f();
|
|
51777
52131
|
return adLog.timeEnd("requestAd"), adLog.info("Ad request completed", { result: d }), adLog.groupEnd(), (o = CryptoSteamSDK.onAdEnd) == null || o.call(CryptoSteamSDK, d), d;
|
|
51778
52132
|
} catch (l) {
|
|
51779
|
-
return adLog.timeEnd("requestAd"), adLog.error("Error in requestAd", l), adLog.groupEnd(),
|
|
52133
|
+
return adLog.timeEnd("requestAd"), adLog.error("Error in requestAd", l), adLog.groupEnd(), analytics.track("ad_show_error", {
|
|
51780
52134
|
...getBaseAnalyticsParams(),
|
|
51781
52135
|
message: l instanceof Error ? l.message : "Unknown error in requestAd",
|
|
51782
52136
|
error_type: "sdk_exception",
|
|
52137
|
+
error_code: "sdk_exception",
|
|
51783
52138
|
ad_type: adType,
|
|
52139
|
+
provider: adType,
|
|
51784
52140
|
error: l instanceof Error ? l.toString() : String(l),
|
|
51785
52141
|
placement_id: e.placementId
|
|
51786
52142
|
}), (a = CryptoSteamSDK.onAdEnd) == null || a.call(CryptoSteamSDK, !1), !1;
|
|
@@ -51790,9 +52146,10 @@ const CryptoSteamSDK = {
|
|
|
51790
52146
|
var t, i, s;
|
|
51791
52147
|
adLog.group("requestRewardAd"), adLog.time("requestRewardAd"), (t = CryptoSteamSDK.onAdStart) == null || t.call(CryptoSteamSDK);
|
|
51792
52148
|
try {
|
|
51793
|
-
|
|
52149
|
+
analytics.track("ad_show_requested", {
|
|
51794
52150
|
...getBaseAnalyticsParams(),
|
|
51795
52151
|
ad_type: orbitInitialized ? "orbit" : adType,
|
|
52152
|
+
provider: orbitInitialized ? "orbit" : adType,
|
|
51796
52153
|
placement_id: e.placementId
|
|
51797
52154
|
});
|
|
51798
52155
|
const o = async () => {
|
|
@@ -51818,11 +52175,13 @@ const CryptoSteamSDK = {
|
|
|
51818
52175
|
), c = await showGigapubAd(l, e.placementId);
|
|
51819
52176
|
return await delay(2e3), c;
|
|
51820
52177
|
}
|
|
51821
|
-
return adLog.error("Ad network not initialized or not supported", { adType }),
|
|
52178
|
+
return adLog.error("Ad network not initialized or not supported", { adType }), analytics.track("ad_show_error", {
|
|
51822
52179
|
...getBaseAnalyticsParams(),
|
|
51823
52180
|
message: "Ad network not initialized or not supported",
|
|
51824
52181
|
ad_type: adType,
|
|
52182
|
+
provider: adType,
|
|
51825
52183
|
error_type: "unsupported_network",
|
|
52184
|
+
error_code: "unsupported_network",
|
|
51826
52185
|
placement_id: e.placementId
|
|
51827
52186
|
}), !1;
|
|
51828
52187
|
};
|
|
@@ -51841,11 +52200,13 @@ const CryptoSteamSDK = {
|
|
|
51841
52200
|
a = await o();
|
|
51842
52201
|
return adLog.timeEnd("requestRewardAd"), adLog.info("Reward ad request completed", { result: a }), adLog.groupEnd(), (i = CryptoSteamSDK.onAdEnd) == null || i.call(CryptoSteamSDK, a), a;
|
|
51843
52202
|
} catch (o) {
|
|
51844
|
-
return adLog.timeEnd("requestRewardAd"), adLog.error("Error in requestRewardAd", o), adLog.groupEnd(),
|
|
52203
|
+
return adLog.timeEnd("requestRewardAd"), adLog.error("Error in requestRewardAd", o), adLog.groupEnd(), analytics.track("ad_show_error", {
|
|
51845
52204
|
...getBaseAnalyticsParams(),
|
|
51846
52205
|
message: o instanceof Error ? o.message : "Unknown error in requestRewardAd",
|
|
51847
52206
|
error_type: "sdk_exception",
|
|
52207
|
+
error_code: "sdk_exception",
|
|
51848
52208
|
ad_type: adType,
|
|
52209
|
+
provider: adType,
|
|
51849
52210
|
error: o instanceof Error ? o.toString() : String(o),
|
|
51850
52211
|
placement_id: e.placementId
|
|
51851
52212
|
}), (s = CryptoSteamSDK.onAdEnd) == null || s.call(CryptoSteamSDK, !1), !1;
|
|
@@ -51979,9 +52340,10 @@ const CryptoSteamSDK = {
|
|
|
51979
52340
|
console.error("Config not found");
|
|
51980
52341
|
return;
|
|
51981
52342
|
}
|
|
51982
|
-
|
|
52343
|
+
analytics.track("game_ready", {
|
|
51983
52344
|
game_id: e.game_id,
|
|
51984
|
-
game_title: t.title
|
|
52345
|
+
game_title: t.title,
|
|
52346
|
+
time_to_load_ms: gameInitializedAt !== null ? Math.round(performance.now() - gameInitializedAt) : void 0
|
|
51985
52347
|
}), ReactGA.event("game_loaded", {
|
|
51986
52348
|
gameId: e.game_id
|
|
51987
52349
|
});
|
|
@@ -52015,9 +52377,9 @@ const CryptoSteamSDK = {
|
|
|
52015
52377
|
}
|
|
52016
52378
|
};
|
|
52017
52379
|
CryptoSteamSDK.requestAd = throttleLeading(CryptoSteamSDK.requestAd.bind(CryptoSteamSDK), 1e4);
|
|
52018
|
-
const globalObj = getGlobalObj();
|
|
52019
|
-
globalObj.CryptoSteamSDK =
|
|
52020
|
-
globalObj.PortalSDK =
|
|
52380
|
+
const resolvedSDK = isInIframe() ? createIframeSdk() : CryptoSteamSDK, globalObj = getGlobalObj();
|
|
52381
|
+
globalObj.CryptoSteamSDK = resolvedSDK;
|
|
52382
|
+
globalObj.PortalSDK = resolvedSDK;
|
|
52021
52383
|
const PortalEmuSDK = {
|
|
52022
52384
|
isAdRunning: () => !1,
|
|
52023
52385
|
getValueSync: (e) => getValueSync(e),
|
|
@@ -52041,8 +52403,8 @@ const PortalEmuSDK = {
|
|
|
52041
52403
|
globalObj.PortalEmuSDK = PortalEmuSDK;
|
|
52042
52404
|
export {
|
|
52043
52405
|
BASE_URL,
|
|
52044
|
-
|
|
52045
|
-
|
|
52406
|
+
resolvedSDK as PortalSDK,
|
|
52407
|
+
resolvedSDK as default,
|
|
52046
52408
|
makeRequest,
|
|
52047
52409
|
startGameTimeTrack
|
|
52048
52410
|
};
|