@arcware-cloud/pixelstreaming-websdk 1.3.13 → 1.3.15
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/README.md +4 -0
- package/index.cjs.js +135 -60
- package/index.esm.js +172 -96
- package/index.umd.js +135 -60
- package/package.json +1 -1
- package/types/lib/ArcwareConfig.d.ts +3 -1
- package/types/lib/domain/ArcwareSettingsSchema.d.ts +2 -1
- package/types/{shared/lib/Types → lib/features}/ZWhiteLabel.d.ts +1 -0
- package/types/lib/features/whiteLabelling.d.ts +1 -1
- package/types/shared/lib/index.d.ts +0 -1
package/README.md
CHANGED
package/index.cjs.js
CHANGED
|
@@ -23353,11 +23353,13 @@ exports.ArcwareApplication = ArcwareApplication;
|
|
|
23353
23353
|
|
|
23354
23354
|
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
23355
23355
|
exports.ArcwareConfig = exports.DefaultUrl = void 0;
|
|
23356
|
+
const tslib_1 = __webpack_require__(655);
|
|
23356
23357
|
const zod_1 = __webpack_require__(8754);
|
|
23357
23358
|
const lib_pixelstreamingfrontend_ue5_5_1 = __webpack_require__(693);
|
|
23358
23359
|
const Session_1 = __webpack_require__(2469);
|
|
23359
23360
|
const ArcwareSettingsSchema_1 = __webpack_require__(5602);
|
|
23360
23361
|
const whiteLabelling_1 = __webpack_require__(3545);
|
|
23362
|
+
const ZWhiteLabel_1 = __webpack_require__(467);
|
|
23361
23363
|
/** Default arcware signalling endpoint. */
|
|
23362
23364
|
exports.DefaultUrl = `wss://signalling-client.ragnarok.arcware.cloud`;
|
|
23363
23365
|
// The below Logger overrides can likely be removed as PSInfra 5.5 logger supports setting log verbosity
|
|
@@ -23421,7 +23423,7 @@ class ArcwareConfig extends lib_pixelstreamingfrontend_ue5_5_1.Config {
|
|
|
23421
23423
|
if (!config.initialSettings.ss)
|
|
23422
23424
|
config.initialSettings.ss = exports.DefaultUrl;
|
|
23423
23425
|
super(config);
|
|
23424
|
-
this.VERSION = "1.3.
|
|
23426
|
+
this.VERSION = "1.3.15";
|
|
23425
23427
|
this.settings = settings;
|
|
23426
23428
|
this.session = new Session_1.Session();
|
|
23427
23429
|
this._initialSettings = config.initialSettings;
|
|
@@ -23433,14 +23435,70 @@ class ArcwareConfig extends lib_pixelstreamingfrontend_ue5_5_1.Config {
|
|
|
23433
23435
|
if (this.useUrlParams) {
|
|
23434
23436
|
// Get the query string from URL
|
|
23435
23437
|
const qs = new URLSearchParams(window.location.search);
|
|
23436
|
-
|
|
23437
|
-
|
|
23438
|
-
|
|
23439
|
-
|
|
23438
|
+
if (qs.has("wl") && qs.get("wl") !== "") {
|
|
23439
|
+
// Retrieve image loading from there
|
|
23440
|
+
const wlParsed = this.useUrlParams ? (0, whiteLabelling_1.readWhiteLabelFromQuery)(qs) : undefined; // respect useUrlParams
|
|
23441
|
+
if (wlParsed) {
|
|
23442
|
+
this.settings.whiteLabelling = Object.assign(Object.assign({}, ((_c = this.settings.whiteLabelling) !== null && _c !== void 0 ? _c : {})), wlParsed);
|
|
23443
|
+
}
|
|
23440
23444
|
}
|
|
23441
23445
|
this.settings.infoButton = qs.has("i") || qs.has("info");
|
|
23442
23446
|
}
|
|
23443
23447
|
}
|
|
23448
|
+
static getWhiteLabelling(ShareId, URL = "https://signalling-client.arcware.cloud/whiteLabel/") {
|
|
23449
|
+
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
23450
|
+
const qs = new URLSearchParams(window.location.search);
|
|
23451
|
+
if (qs.has("wl") && qs.get("wl") === "") {
|
|
23452
|
+
// Build final URL safely (trim trailing slashes, encode ShareId)
|
|
23453
|
+
const base = URL.replace(/\/+$/, "");
|
|
23454
|
+
const requestUrl = `${base}/${encodeURIComponent(ShareId)}`;
|
|
23455
|
+
const controller = new AbortController();
|
|
23456
|
+
const timeoutId = setTimeout(() => controller.abort(), 1000);
|
|
23457
|
+
try {
|
|
23458
|
+
const res = yield fetch(requestUrl, {
|
|
23459
|
+
method: "GET",
|
|
23460
|
+
signal: controller.signal,
|
|
23461
|
+
headers: { Accept: "application/json, text/plain" },
|
|
23462
|
+
credentials: "omit"
|
|
23463
|
+
});
|
|
23464
|
+
if (!res.ok) {
|
|
23465
|
+
// Non-2xx: treat as “no white label”
|
|
23466
|
+
return undefined;
|
|
23467
|
+
}
|
|
23468
|
+
// We read as text first to detect empty-string payloads
|
|
23469
|
+
const text = yield res.text();
|
|
23470
|
+
if (!text || text.trim() === "") {
|
|
23471
|
+
return undefined;
|
|
23472
|
+
}
|
|
23473
|
+
// If there is content, try to parse JSON
|
|
23474
|
+
let json;
|
|
23475
|
+
try {
|
|
23476
|
+
json = JSON.parse(text);
|
|
23477
|
+
}
|
|
23478
|
+
catch (_a) {
|
|
23479
|
+
// Not valid JSON → ignore
|
|
23480
|
+
return undefined;
|
|
23481
|
+
}
|
|
23482
|
+
// Validate against the allowlisted schema
|
|
23483
|
+
const parsed = ZWhiteLabel_1.ZWhiteLabel.safeParse(json);
|
|
23484
|
+
if (!parsed.success) {
|
|
23485
|
+
// Optionally log parsed.error for diagnostics
|
|
23486
|
+
return undefined;
|
|
23487
|
+
}
|
|
23488
|
+
return parsed.data;
|
|
23489
|
+
}
|
|
23490
|
+
catch (err) {
|
|
23491
|
+
// Abort or network error → treat as “no white label”
|
|
23492
|
+
// if (err?.name !== "AbortError") console.warn("getWhiteLabelling failed", err);
|
|
23493
|
+
return undefined;
|
|
23494
|
+
}
|
|
23495
|
+
finally {
|
|
23496
|
+
clearTimeout(timeoutId);
|
|
23497
|
+
}
|
|
23498
|
+
}
|
|
23499
|
+
return undefined;
|
|
23500
|
+
});
|
|
23501
|
+
}
|
|
23444
23502
|
/** Setup connection string. */
|
|
23445
23503
|
get urlFlags() {
|
|
23446
23504
|
var _a;
|
|
@@ -24361,7 +24419,7 @@ class ArcwarePixelStreaming extends lib_pixelstreamingfrontend_ue5_5_1.PixelStre
|
|
|
24361
24419
|
});
|
|
24362
24420
|
}
|
|
24363
24421
|
applyBrandingFromSettings() {
|
|
24364
|
-
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o;
|
|
24422
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p;
|
|
24365
24423
|
const cfg = ((_b = (_a = this === null || this === void 0 ? void 0 : this.config) === null || _a === void 0 ? void 0 : _a.settings.whiteLabelling) !== null && _b !== void 0 ? _b : {});
|
|
24366
24424
|
// Loader image + fade
|
|
24367
24425
|
try {
|
|
@@ -24370,25 +24428,36 @@ class ArcwarePixelStreaming extends lib_pixelstreamingfrontend_ue5_5_1.PixelStre
|
|
|
24370
24428
|
(_f = (_e = this.logoLoader).setFade) === null || _f === void 0 ? void 0 : _f.call(_e, cfg.loadingIconFadeMs);
|
|
24371
24429
|
}
|
|
24372
24430
|
}
|
|
24373
|
-
catch (
|
|
24374
|
-
//
|
|
24431
|
+
catch (_q) { }
|
|
24432
|
+
// Pick splash host: loveLettersContainer (preferred) or player parent
|
|
24375
24433
|
try {
|
|
24376
24434
|
const el = (_m = (_g = this.loveLettersContainer) !== null && _g !== void 0 ? _g : (_l = (_k = (_j = (_h = this.webRtcController) === null || _h === void 0 ? void 0 : _h.videoPlayer) === null || _j === void 0 ? void 0 : _j.getVideoParentElement) === null || _k === void 0 ? void 0 : _k.call(_j)) === null || _l === void 0 ? void 0 : _l.parentElement) !== null && _m !== void 0 ? _m : null;
|
|
24377
24435
|
if (!el)
|
|
24378
24436
|
return;
|
|
24379
|
-
// Clear previous inline choices
|
|
24380
24437
|
const s = el.style;
|
|
24438
|
+
// Nuke previous inline styles (longhands only; never touch 'background' shorthand here)
|
|
24381
24439
|
s.removeProperty("background-image");
|
|
24382
24440
|
s.removeProperty("background-size");
|
|
24383
24441
|
s.removeProperty("background-repeat");
|
|
24384
24442
|
s.removeProperty("background-position");
|
|
24385
24443
|
s.removeProperty("background-color");
|
|
24444
|
+
// Also clear any earlier 'background' inline shorthand that might have been set elsewhere
|
|
24445
|
+
// (we set to 'initial' first, then re-apply longhands)
|
|
24446
|
+
s.setProperty("background", "initial");
|
|
24386
24447
|
el.classList.remove("aw-splash");
|
|
24387
|
-
|
|
24388
|
-
|
|
24389
|
-
|
|
24390
|
-
|
|
24391
|
-
|
|
24448
|
+
// If neither color nor image is provided, nothing to do
|
|
24449
|
+
const haveColor = !!cfg.splashScreenBgColor;
|
|
24450
|
+
const haveImage = !!cfg.splashScreenUrl;
|
|
24451
|
+
if (!haveColor && !haveImage)
|
|
24452
|
+
return;
|
|
24453
|
+
// Always ensure our class is present when we brand
|
|
24454
|
+
el.classList.add("aw-splash");
|
|
24455
|
+
// Apply color with !important so external 'background: ... !important' can't wipe it
|
|
24456
|
+
const bgColor = (_o = cfg.splashScreenBgColor) !== null && _o !== void 0 ? _o : "var(--color0)";
|
|
24457
|
+
s.setProperty("background-color", bgColor, "important");
|
|
24458
|
+
if (haveImage) {
|
|
24459
|
+
// Mode → size/repeat mapping
|
|
24460
|
+
const mode = ((_p = cfg.splashScreenMode) !== null && _p !== void 0 ? _p : "contain");
|
|
24392
24461
|
switch (mode) {
|
|
24393
24462
|
case "contain":
|
|
24394
24463
|
s.backgroundSize = "contain";
|
|
@@ -24403,17 +24472,25 @@ class ArcwarePixelStreaming extends lib_pixelstreamingfrontend_ue5_5_1.PixelStre
|
|
|
24403
24472
|
s.backgroundRepeat = "no-repeat";
|
|
24404
24473
|
break;
|
|
24405
24474
|
case "repeat":
|
|
24406
|
-
s.backgroundSize = "auto"; //
|
|
24475
|
+
s.backgroundSize = "auto"; // intrinsic
|
|
24407
24476
|
s.backgroundRepeat = "repeat";
|
|
24408
24477
|
break;
|
|
24409
24478
|
}
|
|
24410
|
-
// Position
|
|
24479
|
+
// Position
|
|
24411
24480
|
s.backgroundPosition = cfg.splashScreenPosition || "center center";
|
|
24412
|
-
|
|
24481
|
+
// Image last (longhand so it won't reset color)
|
|
24482
|
+
// Use quotes to be safe with URLs containing parentheses/spaces
|
|
24413
24483
|
s.backgroundImage = `url("${cfg.splashScreenUrl}")`;
|
|
24414
24484
|
}
|
|
24485
|
+
else {
|
|
24486
|
+
// No image → ensure any previous image is cleared
|
|
24487
|
+
s.backgroundImage = "none";
|
|
24488
|
+
s.backgroundRepeat = "no-repeat";
|
|
24489
|
+
s.backgroundPosition = "center center";
|
|
24490
|
+
s.backgroundSize = "auto";
|
|
24491
|
+
}
|
|
24415
24492
|
}
|
|
24416
|
-
catch (
|
|
24493
|
+
catch (_r) { }
|
|
24417
24494
|
}
|
|
24418
24495
|
}
|
|
24419
24496
|
exports.ArcwarePixelStreaming = ArcwarePixelStreaming;
|
|
@@ -24429,6 +24506,7 @@ Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
|
24429
24506
|
exports.ArcwareSettingsSchema = void 0;
|
|
24430
24507
|
const zod_1 = __webpack_require__(8754);
|
|
24431
24508
|
const shared_pixelstreaming_websdk_1 = __webpack_require__(7910);
|
|
24509
|
+
const ZWhiteLabel_1 = __webpack_require__(467);
|
|
24432
24510
|
/** Arcware Settings. */
|
|
24433
24511
|
exports.ArcwareSettingsSchema = zod_1.z.object({
|
|
24434
24512
|
/** Overwrites the Session-Tool and uses the provided session instead. */
|
|
@@ -24487,7 +24565,7 @@ exports.ArcwareSettingsSchema = zod_1.z.object({
|
|
|
24487
24565
|
.strict()
|
|
24488
24566
|
.optional(),
|
|
24489
24567
|
/** Loader customization */
|
|
24490
|
-
whiteLabelling:
|
|
24568
|
+
whiteLabelling: ZWhiteLabel_1.ZWhiteLabel.optional()
|
|
24491
24569
|
});
|
|
24492
24570
|
|
|
24493
24571
|
|
|
@@ -25278,6 +25356,40 @@ class DiagnosticsCollector {
|
|
|
25278
25356
|
exports.DiagnosticsCollector = DiagnosticsCollector;
|
|
25279
25357
|
|
|
25280
25358
|
|
|
25359
|
+
/***/ }),
|
|
25360
|
+
|
|
25361
|
+
/***/ 467:
|
|
25362
|
+
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
|
|
25363
|
+
|
|
25364
|
+
|
|
25365
|
+
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
25366
|
+
exports.ZWhiteLabel = void 0;
|
|
25367
|
+
const zod_1 = __webpack_require__(8754);
|
|
25368
|
+
/** Absolute HTTPS URL (no http) */
|
|
25369
|
+
const AbsoluteHttpsUrl = zod_1.z
|
|
25370
|
+
.string()
|
|
25371
|
+
.url()
|
|
25372
|
+
.refine((u) => u.startsWith("https://"), { message: "URL must use https://" });
|
|
25373
|
+
/** Relative path (no scheme like http:, data:, javascript:, etc.) */
|
|
25374
|
+
const RelativePath = zod_1.z
|
|
25375
|
+
.string()
|
|
25376
|
+
.min(1)
|
|
25377
|
+
.refine((s) => !/^[a-zA-Z][a-zA-Z0-9+.-]*:/.test(s), { message: "Expected a relative path without a URL scheme" });
|
|
25378
|
+
/** Image URL can be absolute (https) or relative (e.g. /assets/logo.png, ./img.png) */
|
|
25379
|
+
const ImageUrl = zod_1.z.union([AbsoluteHttpsUrl, RelativePath]);
|
|
25380
|
+
/** Strict allowlist for white-label brand fields coming from the URL */
|
|
25381
|
+
exports.ZWhiteLabel = zod_1.z
|
|
25382
|
+
.object({
|
|
25383
|
+
loadingIconUrl: ImageUrl.optional(),
|
|
25384
|
+
loadingIconFadeMs: zod_1.z.number().int().positive().optional(),
|
|
25385
|
+
splashScreenUrl: ImageUrl.optional(),
|
|
25386
|
+
splashScreenMode: zod_1.z.enum(["contain", "cover", "stretch", "repeat"]).optional(),
|
|
25387
|
+
splashScreenPosition: zod_1.z.string().optional(),
|
|
25388
|
+
splashScreenBgColor: zod_1.z.string().optional()
|
|
25389
|
+
})
|
|
25390
|
+
.strict();
|
|
25391
|
+
|
|
25392
|
+
|
|
25281
25393
|
/***/ }),
|
|
25282
25394
|
|
|
25283
25395
|
/***/ 2483:
|
|
@@ -25414,7 +25526,7 @@ exports.waitForElement = waitForElement;
|
|
|
25414
25526
|
|
|
25415
25527
|
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
25416
25528
|
exports.readWhiteLabelFromQuery = void 0;
|
|
25417
|
-
const
|
|
25529
|
+
const ZWhiteLabel_1 = __webpack_require__(467);
|
|
25418
25530
|
function decodeBase64OrBase64Url(raw) {
|
|
25419
25531
|
const normalized = raw.replace(/-/g, "+").replace(/_/g, "/");
|
|
25420
25532
|
const padded = normalized + "===".slice((normalized.length + 3) % 4);
|
|
@@ -25425,14 +25537,13 @@ function decodeBase64OrBase64Url(raw) {
|
|
|
25425
25537
|
}
|
|
25426
25538
|
/** Parse ?wl=... (or ?whitelabel=...) → validated partial settings */
|
|
25427
25539
|
function readWhiteLabelFromQuery(qs) {
|
|
25428
|
-
var _a;
|
|
25429
25540
|
try {
|
|
25430
|
-
const raw =
|
|
25541
|
+
const raw = qs.get("wl");
|
|
25431
25542
|
if (!raw)
|
|
25432
25543
|
return undefined;
|
|
25433
25544
|
const jsonStr = decodeBase64OrBase64Url(raw);
|
|
25434
25545
|
const obj = JSON.parse(jsonStr);
|
|
25435
|
-
const parsed =
|
|
25546
|
+
const parsed = ZWhiteLabel_1.ZWhiteLabel.safeParse(obj);
|
|
25436
25547
|
if (!parsed.success) {
|
|
25437
25548
|
//console.warn("[ArcwareConfig] Invalid wl payload:", parsed.error?.flatten?.());
|
|
25438
25549
|
return undefined;
|
|
@@ -27146,40 +27257,6 @@ exports.Send = {
|
|
|
27146
27257
|
};
|
|
27147
27258
|
|
|
27148
27259
|
|
|
27149
|
-
/***/ }),
|
|
27150
|
-
|
|
27151
|
-
/***/ 6750:
|
|
27152
|
-
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
|
|
27153
|
-
|
|
27154
|
-
|
|
27155
|
-
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
27156
|
-
exports.ZWhiteLabel = void 0;
|
|
27157
|
-
const zod_1 = __webpack_require__(8754);
|
|
27158
|
-
/** Absolute HTTPS URL (no http) */
|
|
27159
|
-
const AbsoluteHttpsUrl = zod_1.z
|
|
27160
|
-
.string()
|
|
27161
|
-
.url()
|
|
27162
|
-
.refine((u) => u.startsWith("https://"), { message: "URL must use https://" });
|
|
27163
|
-
/** Relative path (no scheme like http:, data:, javascript:, etc.) */
|
|
27164
|
-
const RelativePath = zod_1.z
|
|
27165
|
-
.string()
|
|
27166
|
-
.min(1)
|
|
27167
|
-
.refine((s) => !/^[a-zA-Z][a-zA-Z0-9+.-]*:/.test(s), { message: "Expected a relative path without a URL scheme" });
|
|
27168
|
-
/** Image URL can be absolute (https) or relative (e.g. /assets/logo.png, ./img.png) */
|
|
27169
|
-
const ImageUrl = zod_1.z.union([AbsoluteHttpsUrl, RelativePath]);
|
|
27170
|
-
/** Strict allowlist for white-label brand fields coming from the URL */
|
|
27171
|
-
exports.ZWhiteLabel = zod_1.z
|
|
27172
|
-
.object({
|
|
27173
|
-
loadingIconUrl: ImageUrl.optional(),
|
|
27174
|
-
loadingIconFadeMs: zod_1.z.number().int().positive().optional(),
|
|
27175
|
-
splashScreenUrl: ImageUrl.optional(),
|
|
27176
|
-
splashScreenMode: zod_1.z.enum(["contain", "cover", "stretch", "repeat"]).optional(),
|
|
27177
|
-
splashScreenPosition: zod_1.z.string().optional(),
|
|
27178
|
-
splashScreenBgColor: zod_1.z.string().optional()
|
|
27179
|
-
})
|
|
27180
|
-
.strict();
|
|
27181
|
-
|
|
27182
|
-
|
|
27183
27260
|
/***/ }),
|
|
27184
27261
|
|
|
27185
27262
|
/***/ 318:
|
|
@@ -27187,10 +27264,8 @@ exports.ZWhiteLabel = zod_1.z
|
|
|
27187
27264
|
|
|
27188
27265
|
|
|
27189
27266
|
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
27190
|
-
exports.
|
|
27267
|
+
exports.Messages = void 0;
|
|
27191
27268
|
exports.Messages = __webpack_require__(5387);
|
|
27192
|
-
var ZWhiteLabel_1 = __webpack_require__(6750);
|
|
27193
|
-
Object.defineProperty(exports, "ZWhiteLabel", ({ enumerable: true, get: function () { return ZWhiteLabel_1.ZWhiteLabel; } }));
|
|
27194
27269
|
|
|
27195
27270
|
|
|
27196
27271
|
/***/ }),
|
package/index.esm.js
CHANGED
|
@@ -23356,12 +23356,16 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
23356
23356
|
/* harmony export */ "ArcwareConfig": () => (/* binding */ ArcwareConfig),
|
|
23357
23357
|
/* harmony export */ "DefaultUrl": () => (/* binding */ DefaultUrl)
|
|
23358
23358
|
/* harmony export */ });
|
|
23359
|
-
/* harmony import */ var
|
|
23360
|
-
/* harmony import */ var
|
|
23361
|
-
/* harmony import */ var _epicgames_ps_lib_pixelstreamingfrontend_ue5_5__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(
|
|
23359
|
+
/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(655);
|
|
23360
|
+
/* harmony import */ var zod__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(1604);
|
|
23361
|
+
/* harmony import */ var _epicgames_ps_lib_pixelstreamingfrontend_ue5_5__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(7800);
|
|
23362
|
+
/* harmony import */ var _epicgames_ps_lib_pixelstreamingfrontend_ue5_5__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(7463);
|
|
23362
23363
|
/* harmony import */ var _domain_Session__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(2469);
|
|
23363
23364
|
/* harmony import */ var _domain_ArcwareSettingsSchema__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(5602);
|
|
23364
23365
|
/* harmony import */ var _features_whiteLabelling__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(3545);
|
|
23366
|
+
/* harmony import */ var _features_ZWhiteLabel__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(467);
|
|
23367
|
+
|
|
23368
|
+
|
|
23365
23369
|
|
|
23366
23370
|
|
|
23367
23371
|
|
|
@@ -23381,8 +23385,8 @@ Logger.Error = (message: string) => {
|
|
|
23381
23385
|
if (message?.startsWith("unhandled Stat Type")) return;
|
|
23382
23386
|
console.error(message);
|
|
23383
23387
|
};*/
|
|
23384
|
-
|
|
23385
|
-
class ArcwareConfig extends
|
|
23388
|
+
_epicgames_ps_lib_pixelstreamingfrontend_ue5_5__WEBPACK_IMPORTED_MODULE_4__.Logger.InitLogging(2, false);
|
|
23389
|
+
class ArcwareConfig extends _epicgames_ps_lib_pixelstreamingfrontend_ue5_5__WEBPACK_IMPORTED_MODULE_5__.Config {
|
|
23386
23390
|
/**
|
|
23387
23391
|
* Can be used to fetch projectId and shareId from the current url.
|
|
23388
23392
|
* Example:
|
|
@@ -23401,8 +23405,8 @@ class ArcwareConfig extends _epicgames_ps_lib_pixelstreamingfrontend_ue5_5__WEBP
|
|
|
23401
23405
|
static PickIdsOfUrl() {
|
|
23402
23406
|
const { pathname } = new URL(window.location.href);
|
|
23403
23407
|
const sections = pathname.split("/");
|
|
23404
|
-
const projectId = sections.find((section) =>
|
|
23405
|
-
const shareId = sections.find((section) =>
|
|
23408
|
+
const projectId = sections.find((section) => zod__WEBPACK_IMPORTED_MODULE_6__.z.string().uuid().safeParse(section).success);
|
|
23409
|
+
const shareId = sections.find((section) => zod__WEBPACK_IMPORTED_MODULE_6__.z.string().startsWith("share-").safeParse(section).success);
|
|
23406
23410
|
return {
|
|
23407
23411
|
projectId,
|
|
23408
23412
|
shareId
|
|
@@ -23430,26 +23434,82 @@ class ArcwareConfig extends _epicgames_ps_lib_pixelstreamingfrontend_ue5_5__WEBP
|
|
|
23430
23434
|
if (!config.initialSettings.ss)
|
|
23431
23435
|
config.initialSettings.ss = DefaultUrl;
|
|
23432
23436
|
super(config);
|
|
23433
|
-
this.VERSION = "1.3.
|
|
23437
|
+
this.VERSION = "1.3.15";
|
|
23434
23438
|
this.settings = settings;
|
|
23435
23439
|
this.session = new _domain_Session__WEBPACK_IMPORTED_MODULE_0__.Session();
|
|
23436
23440
|
this._initialSettings = config.initialSettings;
|
|
23437
23441
|
// Setup arcware default settings.
|
|
23438
|
-
this.setFlagEnabled(
|
|
23442
|
+
this.setFlagEnabled(_epicgames_ps_lib_pixelstreamingfrontend_ue5_5__WEBPACK_IMPORTED_MODULE_5__.Flags.AFKDetection, true);
|
|
23439
23443
|
// IMPORTANT NOTE: The feature BrowserSendOffer is no longer supported in PSInfra 5.5.
|
|
23440
23444
|
// The offer is now expected to come from UE. Ensure that your signalling server supports this behaviour.
|
|
23441
23445
|
//this.setFlagEnabled(Flags.BrowserSendOffer, true);
|
|
23442
23446
|
if (this.useUrlParams) {
|
|
23443
23447
|
// Get the query string from URL
|
|
23444
23448
|
const qs = new URLSearchParams(window.location.search);
|
|
23445
|
-
|
|
23446
|
-
|
|
23447
|
-
|
|
23448
|
-
|
|
23449
|
+
if (qs.has("wl") && qs.get("wl") !== "") {
|
|
23450
|
+
// Retrieve image loading from there
|
|
23451
|
+
const wlParsed = this.useUrlParams ? (0,_features_whiteLabelling__WEBPACK_IMPORTED_MODULE_2__.readWhiteLabelFromQuery)(qs) : undefined; // respect useUrlParams
|
|
23452
|
+
if (wlParsed) {
|
|
23453
|
+
this.settings.whiteLabelling = Object.assign(Object.assign({}, ((_c = this.settings.whiteLabelling) !== null && _c !== void 0 ? _c : {})), wlParsed);
|
|
23454
|
+
}
|
|
23449
23455
|
}
|
|
23450
23456
|
this.settings.infoButton = qs.has("i") || qs.has("info");
|
|
23451
23457
|
}
|
|
23452
23458
|
}
|
|
23459
|
+
static getWhiteLabelling(ShareId, URL = "https://signalling-client.arcware.cloud/whiteLabel/") {
|
|
23460
|
+
return (0,tslib__WEBPACK_IMPORTED_MODULE_7__.__awaiter)(this, void 0, void 0, function* () {
|
|
23461
|
+
const qs = new URLSearchParams(window.location.search);
|
|
23462
|
+
if (qs.has("wl") && qs.get("wl") === "") {
|
|
23463
|
+
// Build final URL safely (trim trailing slashes, encode ShareId)
|
|
23464
|
+
const base = URL.replace(/\/+$/, "");
|
|
23465
|
+
const requestUrl = `${base}/${encodeURIComponent(ShareId)}`;
|
|
23466
|
+
const controller = new AbortController();
|
|
23467
|
+
const timeoutId = setTimeout(() => controller.abort(), 1000);
|
|
23468
|
+
try {
|
|
23469
|
+
const res = yield fetch(requestUrl, {
|
|
23470
|
+
method: "GET",
|
|
23471
|
+
signal: controller.signal,
|
|
23472
|
+
headers: { Accept: "application/json, text/plain" },
|
|
23473
|
+
credentials: "omit"
|
|
23474
|
+
});
|
|
23475
|
+
if (!res.ok) {
|
|
23476
|
+
// Non-2xx: treat as “no white label”
|
|
23477
|
+
return undefined;
|
|
23478
|
+
}
|
|
23479
|
+
// We read as text first to detect empty-string payloads
|
|
23480
|
+
const text = yield res.text();
|
|
23481
|
+
if (!text || text.trim() === "") {
|
|
23482
|
+
return undefined;
|
|
23483
|
+
}
|
|
23484
|
+
// If there is content, try to parse JSON
|
|
23485
|
+
let json;
|
|
23486
|
+
try {
|
|
23487
|
+
json = JSON.parse(text);
|
|
23488
|
+
}
|
|
23489
|
+
catch (_a) {
|
|
23490
|
+
// Not valid JSON → ignore
|
|
23491
|
+
return undefined;
|
|
23492
|
+
}
|
|
23493
|
+
// Validate against the allowlisted schema
|
|
23494
|
+
const parsed = _features_ZWhiteLabel__WEBPACK_IMPORTED_MODULE_3__.ZWhiteLabel.safeParse(json);
|
|
23495
|
+
if (!parsed.success) {
|
|
23496
|
+
// Optionally log parsed.error for diagnostics
|
|
23497
|
+
return undefined;
|
|
23498
|
+
}
|
|
23499
|
+
return parsed.data;
|
|
23500
|
+
}
|
|
23501
|
+
catch (err) {
|
|
23502
|
+
// Abort or network error → treat as “no white label”
|
|
23503
|
+
// if (err?.name !== "AbortError") console.warn("getWhiteLabelling failed", err);
|
|
23504
|
+
return undefined;
|
|
23505
|
+
}
|
|
23506
|
+
finally {
|
|
23507
|
+
clearTimeout(timeoutId);
|
|
23508
|
+
}
|
|
23509
|
+
}
|
|
23510
|
+
return undefined;
|
|
23511
|
+
});
|
|
23512
|
+
}
|
|
23453
23513
|
/** Setup connection string. */
|
|
23454
23514
|
get urlFlags() {
|
|
23455
23515
|
var _a;
|
|
@@ -23501,7 +23561,7 @@ class ArcwareConfig extends _epicgames_ps_lib_pixelstreamingfrontend_ue5_5__WEBP
|
|
|
23501
23561
|
return this._initialSettings;
|
|
23502
23562
|
}
|
|
23503
23563
|
modifyInitialSettings(mouseLock) {
|
|
23504
|
-
this.setFlagEnabled(
|
|
23564
|
+
this.setFlagEnabled(_epicgames_ps_lib_pixelstreamingfrontend_ue5_5__WEBPACK_IMPORTED_MODULE_5__.Flags.HoveringMouseMode, mouseLock);
|
|
23505
23565
|
}
|
|
23506
23566
|
}
|
|
23507
23567
|
|
|
@@ -24388,7 +24448,7 @@ class ArcwarePixelStreaming extends _epicgames_ps_lib_pixelstreamingfrontend_ue5
|
|
|
24388
24448
|
});
|
|
24389
24449
|
}
|
|
24390
24450
|
applyBrandingFromSettings() {
|
|
24391
|
-
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o;
|
|
24451
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p;
|
|
24392
24452
|
const cfg = ((_b = (_a = this === null || this === void 0 ? void 0 : this.config) === null || _a === void 0 ? void 0 : _a.settings.whiteLabelling) !== null && _b !== void 0 ? _b : {});
|
|
24393
24453
|
// Loader image + fade
|
|
24394
24454
|
try {
|
|
@@ -24397,25 +24457,36 @@ class ArcwarePixelStreaming extends _epicgames_ps_lib_pixelstreamingfrontend_ue5
|
|
|
24397
24457
|
(_f = (_e = this.logoLoader).setFade) === null || _f === void 0 ? void 0 : _f.call(_e, cfg.loadingIconFadeMs);
|
|
24398
24458
|
}
|
|
24399
24459
|
}
|
|
24400
|
-
catch (
|
|
24401
|
-
//
|
|
24460
|
+
catch (_q) { }
|
|
24461
|
+
// Pick splash host: loveLettersContainer (preferred) or player parent
|
|
24402
24462
|
try {
|
|
24403
24463
|
const el = (_m = (_g = this.loveLettersContainer) !== null && _g !== void 0 ? _g : (_l = (_k = (_j = (_h = this.webRtcController) === null || _h === void 0 ? void 0 : _h.videoPlayer) === null || _j === void 0 ? void 0 : _j.getVideoParentElement) === null || _k === void 0 ? void 0 : _k.call(_j)) === null || _l === void 0 ? void 0 : _l.parentElement) !== null && _m !== void 0 ? _m : null;
|
|
24404
24464
|
if (!el)
|
|
24405
24465
|
return;
|
|
24406
|
-
// Clear previous inline choices
|
|
24407
24466
|
const s = el.style;
|
|
24467
|
+
// Nuke previous inline styles (longhands only; never touch 'background' shorthand here)
|
|
24408
24468
|
s.removeProperty("background-image");
|
|
24409
24469
|
s.removeProperty("background-size");
|
|
24410
24470
|
s.removeProperty("background-repeat");
|
|
24411
24471
|
s.removeProperty("background-position");
|
|
24412
24472
|
s.removeProperty("background-color");
|
|
24473
|
+
// Also clear any earlier 'background' inline shorthand that might have been set elsewhere
|
|
24474
|
+
// (we set to 'initial' first, then re-apply longhands)
|
|
24475
|
+
s.setProperty("background", "initial");
|
|
24413
24476
|
el.classList.remove("aw-splash");
|
|
24414
|
-
|
|
24415
|
-
|
|
24416
|
-
|
|
24417
|
-
|
|
24418
|
-
|
|
24477
|
+
// If neither color nor image is provided, nothing to do
|
|
24478
|
+
const haveColor = !!cfg.splashScreenBgColor;
|
|
24479
|
+
const haveImage = !!cfg.splashScreenUrl;
|
|
24480
|
+
if (!haveColor && !haveImage)
|
|
24481
|
+
return;
|
|
24482
|
+
// Always ensure our class is present when we brand
|
|
24483
|
+
el.classList.add("aw-splash");
|
|
24484
|
+
// Apply color with !important so external 'background: ... !important' can't wipe it
|
|
24485
|
+
const bgColor = (_o = cfg.splashScreenBgColor) !== null && _o !== void 0 ? _o : "var(--color0)";
|
|
24486
|
+
s.setProperty("background-color", bgColor, "important");
|
|
24487
|
+
if (haveImage) {
|
|
24488
|
+
// Mode → size/repeat mapping
|
|
24489
|
+
const mode = ((_p = cfg.splashScreenMode) !== null && _p !== void 0 ? _p : "contain");
|
|
24419
24490
|
switch (mode) {
|
|
24420
24491
|
case "contain":
|
|
24421
24492
|
s.backgroundSize = "contain";
|
|
@@ -24430,17 +24501,25 @@ class ArcwarePixelStreaming extends _epicgames_ps_lib_pixelstreamingfrontend_ue5
|
|
|
24430
24501
|
s.backgroundRepeat = "no-repeat";
|
|
24431
24502
|
break;
|
|
24432
24503
|
case "repeat":
|
|
24433
|
-
s.backgroundSize = "auto"; //
|
|
24504
|
+
s.backgroundSize = "auto"; // intrinsic
|
|
24434
24505
|
s.backgroundRepeat = "repeat";
|
|
24435
24506
|
break;
|
|
24436
24507
|
}
|
|
24437
|
-
// Position
|
|
24508
|
+
// Position
|
|
24438
24509
|
s.backgroundPosition = cfg.splashScreenPosition || "center center";
|
|
24439
|
-
|
|
24510
|
+
// Image last (longhand so it won't reset color)
|
|
24511
|
+
// Use quotes to be safe with URLs containing parentheses/spaces
|
|
24440
24512
|
s.backgroundImage = `url("${cfg.splashScreenUrl}")`;
|
|
24441
24513
|
}
|
|
24514
|
+
else {
|
|
24515
|
+
// No image → ensure any previous image is cleared
|
|
24516
|
+
s.backgroundImage = "none";
|
|
24517
|
+
s.backgroundRepeat = "no-repeat";
|
|
24518
|
+
s.backgroundPosition = "center center";
|
|
24519
|
+
s.backgroundSize = "auto";
|
|
24520
|
+
}
|
|
24442
24521
|
}
|
|
24443
|
-
catch (
|
|
24522
|
+
catch (_r) { }
|
|
24444
24523
|
}
|
|
24445
24524
|
}
|
|
24446
24525
|
|
|
@@ -24454,68 +24533,70 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
24454
24533
|
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
24455
24534
|
/* harmony export */ "ArcwareSettingsSchema": () => (/* binding */ ArcwareSettingsSchema)
|
|
24456
24535
|
/* harmony export */ });
|
|
24457
|
-
/* harmony import */ var
|
|
24536
|
+
/* harmony import */ var zod__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(1604);
|
|
24458
24537
|
/* harmony import */ var _arcware_cloud_shared_pixelstreaming_websdk__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(7910);
|
|
24538
|
+
/* harmony import */ var _features_ZWhiteLabel__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(467);
|
|
24539
|
+
|
|
24459
24540
|
|
|
24460
24541
|
|
|
24461
24542
|
/** Arcware Settings. */
|
|
24462
|
-
const ArcwareSettingsSchema =
|
|
24543
|
+
const ArcwareSettingsSchema = zod__WEBPACK_IMPORTED_MODULE_2__.z.object({
|
|
24463
24544
|
/** Overwrites the Session-Tool and uses the provided session instead. */
|
|
24464
|
-
session:
|
|
24545
|
+
session: zod__WEBPACK_IMPORTED_MODULE_2__.z.string().optional(),
|
|
24465
24546
|
/** Can be used to be added to the request in order to verify access to private projects.
|
|
24466
24547
|
* For internal use only. => Preview page.
|
|
24467
24548
|
*/
|
|
24468
|
-
token:
|
|
24549
|
+
token: zod__WEBPACK_IMPORTED_MODULE_2__.z.string().optional(),
|
|
24469
24550
|
/** @deprecated in there for legacy use. Can only be used when token is provided. */
|
|
24470
|
-
bypass:
|
|
24551
|
+
bypass: zod__WEBPACK_IMPORTED_MODULE_2__.z.boolean().optional(),
|
|
24471
24552
|
// /** Configure DirectFlow Token. */
|
|
24472
24553
|
// directFlow: z.string().optional(),
|
|
24473
24554
|
/** Handler for server side error messages. */
|
|
24474
|
-
errorHandler:
|
|
24555
|
+
errorHandler: zod__WEBPACK_IMPORTED_MODULE_2__.z["function"]().args(_arcware_cloud_shared_pixelstreaming_websdk__WEBPACK_IMPORTED_MODULE_0__.Messages.ZErrorMessage).returns(zod__WEBPACK_IMPORTED_MODULE_2__.z["void"]()).optional(),
|
|
24475
24556
|
/** Handler for queue events. */
|
|
24476
|
-
queueHandler:
|
|
24557
|
+
queueHandler: zod__WEBPACK_IMPORTED_MODULE_2__.z["function"]().args(_arcware_cloud_shared_pixelstreaming_websdk__WEBPACK_IMPORTED_MODULE_0__.Messages.ZQueue).returns(zod__WEBPACK_IMPORTED_MODULE_2__.z["void"]()).optional(),
|
|
24477
24558
|
/** Handler for sessionId message. */
|
|
24478
|
-
sessionIdHandler:
|
|
24559
|
+
sessionIdHandler: zod__WEBPACK_IMPORTED_MODULE_2__.z["function"]().args(zod__WEBPACK_IMPORTED_MODULE_2__.z.string()).returns(zod__WEBPACK_IMPORTED_MODULE_2__.z["void"]()).optional(),
|
|
24479
24560
|
/** Handler for love letters.
|
|
24480
24561
|
* "LoveLetters" are send from backend to the SDK to state what phase the connection currently is in. */
|
|
24481
|
-
loveLetterHandler:
|
|
24562
|
+
loveLetterHandler: zod__WEBPACK_IMPORTED_MODULE_2__.z["function"]().args(_arcware_cloud_shared_pixelstreaming_websdk__WEBPACK_IMPORTED_MODULE_0__.Messages.ZLoveLetter).returns(zod__WEBPACK_IMPORTED_MODULE_2__.z["void"]()).optional(),
|
|
24482
24563
|
/** Show or hide the fullscreen button. */
|
|
24483
|
-
fullscreenButton:
|
|
24564
|
+
fullscreenButton: zod__WEBPACK_IMPORTED_MODULE_2__.z.boolean().optional(),
|
|
24484
24565
|
/** Show or hide the settings button. */
|
|
24485
|
-
settingsButton:
|
|
24566
|
+
settingsButton: zod__WEBPACK_IMPORTED_MODULE_2__.z.boolean().optional(),
|
|
24486
24567
|
/** Show or hide the info button. */
|
|
24487
|
-
infoButton:
|
|
24568
|
+
infoButton: zod__WEBPACK_IMPORTED_MODULE_2__.z.boolean().optional(),
|
|
24488
24569
|
/** Show or hide the audio button. */
|
|
24489
|
-
audioButton:
|
|
24570
|
+
audioButton: zod__WEBPACK_IMPORTED_MODULE_2__.z.boolean().optional(),
|
|
24490
24571
|
/** Show or hide the microphone button. */
|
|
24491
|
-
micButton:
|
|
24572
|
+
micButton: zod__WEBPACK_IMPORTED_MODULE_2__.z.boolean().optional(),
|
|
24492
24573
|
/** Show or hide the microphone button. */
|
|
24493
|
-
stopButton:
|
|
24574
|
+
stopButton: zod__WEBPACK_IMPORTED_MODULE_2__.z.boolean().optional(),
|
|
24494
24575
|
/** Show or hide the connectionStrengthIcon button. */
|
|
24495
|
-
connectionStrengthIcon:
|
|
24576
|
+
connectionStrengthIcon: zod__WEBPACK_IMPORTED_MODULE_2__.z.boolean().optional(),
|
|
24496
24577
|
/** ShareId, used for sharing your project.
|
|
24497
24578
|
* Using ArcwareInit will set this required property for you. */
|
|
24498
|
-
shareId:
|
|
24579
|
+
shareId: zod__WEBPACK_IMPORTED_MODULE_2__.z.string().startsWith("share-").optional(),
|
|
24499
24580
|
/** Id of your project, only required if your shareId refers to multiple projects.
|
|
24500
24581
|
* Using ArcwareInit will set this required property for you. */
|
|
24501
|
-
projectId:
|
|
24582
|
+
projectId: zod__WEBPACK_IMPORTED_MODULE_2__.z.string().optional(),
|
|
24502
24583
|
/** Enable/Disable LoveLetter logging to the console. */
|
|
24503
|
-
loveLetterLogging:
|
|
24584
|
+
loveLetterLogging: zod__WEBPACK_IMPORTED_MODULE_2__.z.boolean().optional(),
|
|
24504
24585
|
/** Enable/Disable Connection Identifier logging to the console. */
|
|
24505
|
-
connectionIdentifierLoggingDisabled:
|
|
24586
|
+
connectionIdentifierLoggingDisabled: zod__WEBPACK_IMPORTED_MODULE_2__.z.boolean().optional(),
|
|
24506
24587
|
/** Width with which instance should be started */
|
|
24507
|
-
startWidth:
|
|
24588
|
+
startWidth: zod__WEBPACK_IMPORTED_MODULE_2__.z.number().optional(),
|
|
24508
24589
|
/** Height with which instance should be started */
|
|
24509
|
-
startHeight:
|
|
24590
|
+
startHeight: zod__WEBPACK_IMPORTED_MODULE_2__.z.number().optional(),
|
|
24510
24591
|
/** Zoom functionality */
|
|
24511
|
-
orientationZoom:
|
|
24512
|
-
landscape:
|
|
24513
|
-
portrait:
|
|
24592
|
+
orientationZoom: zod__WEBPACK_IMPORTED_MODULE_2__.z.object({
|
|
24593
|
+
landscape: zod__WEBPACK_IMPORTED_MODULE_2__.z.number(),
|
|
24594
|
+
portrait: zod__WEBPACK_IMPORTED_MODULE_2__.z.number()
|
|
24514
24595
|
})
|
|
24515
24596
|
.strict()
|
|
24516
24597
|
.optional(),
|
|
24517
24598
|
/** Loader customization */
|
|
24518
|
-
whiteLabelling:
|
|
24599
|
+
whiteLabelling: _features_ZWhiteLabel__WEBPACK_IMPORTED_MODULE_1__.ZWhiteLabel.optional()
|
|
24519
24600
|
});
|
|
24520
24601
|
|
|
24521
24602
|
|
|
@@ -25316,6 +25397,39 @@ class DiagnosticsCollector {
|
|
|
25316
25397
|
}
|
|
25317
25398
|
|
|
25318
25399
|
|
|
25400
|
+
/***/ }),
|
|
25401
|
+
|
|
25402
|
+
/***/ 467:
|
|
25403
|
+
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
25404
|
+
|
|
25405
|
+
__webpack_require__.r(__webpack_exports__);
|
|
25406
|
+
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
25407
|
+
/* harmony export */ "ZWhiteLabel": () => (/* binding */ ZWhiteLabel)
|
|
25408
|
+
/* harmony export */ });
|
|
25409
|
+
/* harmony import */ var zod__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(1604);
|
|
25410
|
+
|
|
25411
|
+
/** Absolute HTTPS URL (no http) */
|
|
25412
|
+
const AbsoluteHttpsUrl = zod__WEBPACK_IMPORTED_MODULE_0__.z.string()
|
|
25413
|
+
.url()
|
|
25414
|
+
.refine((u) => u.startsWith("https://"), { message: "URL must use https://" });
|
|
25415
|
+
/** Relative path (no scheme like http:, data:, javascript:, etc.) */
|
|
25416
|
+
const RelativePath = zod__WEBPACK_IMPORTED_MODULE_0__.z.string()
|
|
25417
|
+
.min(1)
|
|
25418
|
+
.refine((s) => !/^[a-zA-Z][a-zA-Z0-9+.-]*:/.test(s), { message: "Expected a relative path without a URL scheme" });
|
|
25419
|
+
/** Image URL can be absolute (https) or relative (e.g. /assets/logo.png, ./img.png) */
|
|
25420
|
+
const ImageUrl = zod__WEBPACK_IMPORTED_MODULE_0__.z.union([AbsoluteHttpsUrl, RelativePath]);
|
|
25421
|
+
/** Strict allowlist for white-label brand fields coming from the URL */
|
|
25422
|
+
const ZWhiteLabel = zod__WEBPACK_IMPORTED_MODULE_0__.z.object({
|
|
25423
|
+
loadingIconUrl: ImageUrl.optional(),
|
|
25424
|
+
loadingIconFadeMs: zod__WEBPACK_IMPORTED_MODULE_0__.z.number().int().positive().optional(),
|
|
25425
|
+
splashScreenUrl: ImageUrl.optional(),
|
|
25426
|
+
splashScreenMode: zod__WEBPACK_IMPORTED_MODULE_0__.z["enum"](["contain", "cover", "stretch", "repeat"]).optional(),
|
|
25427
|
+
splashScreenPosition: zod__WEBPACK_IMPORTED_MODULE_0__.z.string().optional(),
|
|
25428
|
+
splashScreenBgColor: zod__WEBPACK_IMPORTED_MODULE_0__.z.string().optional()
|
|
25429
|
+
})
|
|
25430
|
+
.strict();
|
|
25431
|
+
|
|
25432
|
+
|
|
25319
25433
|
/***/ }),
|
|
25320
25434
|
|
|
25321
25435
|
/***/ 2483:
|
|
@@ -25453,7 +25567,7 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
25453
25567
|
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
25454
25568
|
/* harmony export */ "readWhiteLabelFromQuery": () => (/* binding */ readWhiteLabelFromQuery)
|
|
25455
25569
|
/* harmony export */ });
|
|
25456
|
-
/* harmony import */ var
|
|
25570
|
+
/* harmony import */ var _ZWhiteLabel__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(467);
|
|
25457
25571
|
|
|
25458
25572
|
function decodeBase64OrBase64Url(raw) {
|
|
25459
25573
|
const normalized = raw.replace(/-/g, "+").replace(/_/g, "/");
|
|
@@ -25465,14 +25579,13 @@ function decodeBase64OrBase64Url(raw) {
|
|
|
25465
25579
|
}
|
|
25466
25580
|
/** Parse ?wl=... (or ?whitelabel=...) → validated partial settings */
|
|
25467
25581
|
function readWhiteLabelFromQuery(qs) {
|
|
25468
|
-
var _a;
|
|
25469
25582
|
try {
|
|
25470
|
-
const raw =
|
|
25583
|
+
const raw = qs.get("wl");
|
|
25471
25584
|
if (!raw)
|
|
25472
25585
|
return undefined;
|
|
25473
25586
|
const jsonStr = decodeBase64OrBase64Url(raw);
|
|
25474
25587
|
const obj = JSON.parse(jsonStr);
|
|
25475
|
-
const parsed =
|
|
25588
|
+
const parsed = _ZWhiteLabel__WEBPACK_IMPORTED_MODULE_0__.ZWhiteLabel.safeParse(obj);
|
|
25476
25589
|
if (!parsed.success) {
|
|
25477
25590
|
//console.warn("[ArcwareConfig] Invalid wl payload:", parsed.error?.flatten?.());
|
|
25478
25591
|
return undefined;
|
|
@@ -26737,8 +26850,7 @@ class StopIcon {
|
|
|
26737
26850
|
|
|
26738
26851
|
__webpack_require__.r(__webpack_exports__);
|
|
26739
26852
|
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
26740
|
-
/* harmony export */ "Messages": () => (/* reexport safe */ _lib__WEBPACK_IMPORTED_MODULE_0__.Messages)
|
|
26741
|
-
/* harmony export */ "ZWhiteLabel": () => (/* reexport safe */ _lib__WEBPACK_IMPORTED_MODULE_0__.ZWhiteLabel)
|
|
26853
|
+
/* harmony export */ "Messages": () => (/* reexport safe */ _lib__WEBPACK_IMPORTED_MODULE_0__.Messages)
|
|
26742
26854
|
/* harmony export */ });
|
|
26743
26855
|
/* harmony import */ var _lib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(318);
|
|
26744
26856
|
|
|
@@ -27221,39 +27333,6 @@ const Send = {
|
|
|
27221
27333
|
};
|
|
27222
27334
|
|
|
27223
27335
|
|
|
27224
|
-
/***/ }),
|
|
27225
|
-
|
|
27226
|
-
/***/ 6750:
|
|
27227
|
-
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
27228
|
-
|
|
27229
|
-
__webpack_require__.r(__webpack_exports__);
|
|
27230
|
-
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
27231
|
-
/* harmony export */ "ZWhiteLabel": () => (/* binding */ ZWhiteLabel)
|
|
27232
|
-
/* harmony export */ });
|
|
27233
|
-
/* harmony import */ var zod__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(1604);
|
|
27234
|
-
|
|
27235
|
-
/** Absolute HTTPS URL (no http) */
|
|
27236
|
-
const AbsoluteHttpsUrl = zod__WEBPACK_IMPORTED_MODULE_0__.z.string()
|
|
27237
|
-
.url()
|
|
27238
|
-
.refine((u) => u.startsWith("https://"), { message: "URL must use https://" });
|
|
27239
|
-
/** Relative path (no scheme like http:, data:, javascript:, etc.) */
|
|
27240
|
-
const RelativePath = zod__WEBPACK_IMPORTED_MODULE_0__.z.string()
|
|
27241
|
-
.min(1)
|
|
27242
|
-
.refine((s) => !/^[a-zA-Z][a-zA-Z0-9+.-]*:/.test(s), { message: "Expected a relative path without a URL scheme" });
|
|
27243
|
-
/** Image URL can be absolute (https) or relative (e.g. /assets/logo.png, ./img.png) */
|
|
27244
|
-
const ImageUrl = zod__WEBPACK_IMPORTED_MODULE_0__.z.union([AbsoluteHttpsUrl, RelativePath]);
|
|
27245
|
-
/** Strict allowlist for white-label brand fields coming from the URL */
|
|
27246
|
-
const ZWhiteLabel = zod__WEBPACK_IMPORTED_MODULE_0__.z.object({
|
|
27247
|
-
loadingIconUrl: ImageUrl.optional(),
|
|
27248
|
-
loadingIconFadeMs: zod__WEBPACK_IMPORTED_MODULE_0__.z.number().int().positive().optional(),
|
|
27249
|
-
splashScreenUrl: ImageUrl.optional(),
|
|
27250
|
-
splashScreenMode: zod__WEBPACK_IMPORTED_MODULE_0__.z["enum"](["contain", "cover", "stretch", "repeat"]).optional(),
|
|
27251
|
-
splashScreenPosition: zod__WEBPACK_IMPORTED_MODULE_0__.z.string().optional(),
|
|
27252
|
-
splashScreenBgColor: zod__WEBPACK_IMPORTED_MODULE_0__.z.string().optional()
|
|
27253
|
-
})
|
|
27254
|
-
.strict();
|
|
27255
|
-
|
|
27256
|
-
|
|
27257
27336
|
/***/ }),
|
|
27258
27337
|
|
|
27259
27338
|
/***/ 318:
|
|
@@ -27261,12 +27340,9 @@ const ZWhiteLabel = zod__WEBPACK_IMPORTED_MODULE_0__.z.object({
|
|
|
27261
27340
|
|
|
27262
27341
|
__webpack_require__.r(__webpack_exports__);
|
|
27263
27342
|
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
27264
|
-
/* harmony export */ "Messages": () => (/* reexport module object */ _Messages__WEBPACK_IMPORTED_MODULE_0__)
|
|
27265
|
-
/* harmony export */ "ZWhiteLabel": () => (/* reexport safe */ _Types_ZWhiteLabel__WEBPACK_IMPORTED_MODULE_1__.ZWhiteLabel)
|
|
27343
|
+
/* harmony export */ "Messages": () => (/* reexport module object */ _Messages__WEBPACK_IMPORTED_MODULE_0__)
|
|
27266
27344
|
/* harmony export */ });
|
|
27267
27345
|
/* harmony import */ var _Messages__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(5387);
|
|
27268
|
-
/* harmony import */ var _Types_ZWhiteLabel__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(6750);
|
|
27269
|
-
|
|
27270
27346
|
|
|
27271
27347
|
|
|
27272
27348
|
|
package/index.umd.js
CHANGED
|
@@ -23363,11 +23363,13 @@ exports.ArcwareApplication = ArcwareApplication;
|
|
|
23363
23363
|
|
|
23364
23364
|
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
23365
23365
|
exports.ArcwareConfig = exports.DefaultUrl = void 0;
|
|
23366
|
+
const tslib_1 = __webpack_require__(655);
|
|
23366
23367
|
const zod_1 = __webpack_require__(8754);
|
|
23367
23368
|
const lib_pixelstreamingfrontend_ue5_5_1 = __webpack_require__(693);
|
|
23368
23369
|
const Session_1 = __webpack_require__(2469);
|
|
23369
23370
|
const ArcwareSettingsSchema_1 = __webpack_require__(5602);
|
|
23370
23371
|
const whiteLabelling_1 = __webpack_require__(3545);
|
|
23372
|
+
const ZWhiteLabel_1 = __webpack_require__(467);
|
|
23371
23373
|
/** Default arcware signalling endpoint. */
|
|
23372
23374
|
exports.DefaultUrl = `wss://signalling-client.ragnarok.arcware.cloud`;
|
|
23373
23375
|
// The below Logger overrides can likely be removed as PSInfra 5.5 logger supports setting log verbosity
|
|
@@ -23431,7 +23433,7 @@ class ArcwareConfig extends lib_pixelstreamingfrontend_ue5_5_1.Config {
|
|
|
23431
23433
|
if (!config.initialSettings.ss)
|
|
23432
23434
|
config.initialSettings.ss = exports.DefaultUrl;
|
|
23433
23435
|
super(config);
|
|
23434
|
-
this.VERSION = "1.3.
|
|
23436
|
+
this.VERSION = "1.3.15";
|
|
23435
23437
|
this.settings = settings;
|
|
23436
23438
|
this.session = new Session_1.Session();
|
|
23437
23439
|
this._initialSettings = config.initialSettings;
|
|
@@ -23443,14 +23445,70 @@ class ArcwareConfig extends lib_pixelstreamingfrontend_ue5_5_1.Config {
|
|
|
23443
23445
|
if (this.useUrlParams) {
|
|
23444
23446
|
// Get the query string from URL
|
|
23445
23447
|
const qs = new URLSearchParams(window.location.search);
|
|
23446
|
-
|
|
23447
|
-
|
|
23448
|
-
|
|
23449
|
-
|
|
23448
|
+
if (qs.has("wl") && qs.get("wl") !== "") {
|
|
23449
|
+
// Retrieve image loading from there
|
|
23450
|
+
const wlParsed = this.useUrlParams ? (0, whiteLabelling_1.readWhiteLabelFromQuery)(qs) : undefined; // respect useUrlParams
|
|
23451
|
+
if (wlParsed) {
|
|
23452
|
+
this.settings.whiteLabelling = Object.assign(Object.assign({}, ((_c = this.settings.whiteLabelling) !== null && _c !== void 0 ? _c : {})), wlParsed);
|
|
23453
|
+
}
|
|
23450
23454
|
}
|
|
23451
23455
|
this.settings.infoButton = qs.has("i") || qs.has("info");
|
|
23452
23456
|
}
|
|
23453
23457
|
}
|
|
23458
|
+
static getWhiteLabelling(ShareId, URL = "https://signalling-client.arcware.cloud/whiteLabel/") {
|
|
23459
|
+
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
23460
|
+
const qs = new URLSearchParams(window.location.search);
|
|
23461
|
+
if (qs.has("wl") && qs.get("wl") === "") {
|
|
23462
|
+
// Build final URL safely (trim trailing slashes, encode ShareId)
|
|
23463
|
+
const base = URL.replace(/\/+$/, "");
|
|
23464
|
+
const requestUrl = `${base}/${encodeURIComponent(ShareId)}`;
|
|
23465
|
+
const controller = new AbortController();
|
|
23466
|
+
const timeoutId = setTimeout(() => controller.abort(), 1000);
|
|
23467
|
+
try {
|
|
23468
|
+
const res = yield fetch(requestUrl, {
|
|
23469
|
+
method: "GET",
|
|
23470
|
+
signal: controller.signal,
|
|
23471
|
+
headers: { Accept: "application/json, text/plain" },
|
|
23472
|
+
credentials: "omit"
|
|
23473
|
+
});
|
|
23474
|
+
if (!res.ok) {
|
|
23475
|
+
// Non-2xx: treat as “no white label”
|
|
23476
|
+
return undefined;
|
|
23477
|
+
}
|
|
23478
|
+
// We read as text first to detect empty-string payloads
|
|
23479
|
+
const text = yield res.text();
|
|
23480
|
+
if (!text || text.trim() === "") {
|
|
23481
|
+
return undefined;
|
|
23482
|
+
}
|
|
23483
|
+
// If there is content, try to parse JSON
|
|
23484
|
+
let json;
|
|
23485
|
+
try {
|
|
23486
|
+
json = JSON.parse(text);
|
|
23487
|
+
}
|
|
23488
|
+
catch (_a) {
|
|
23489
|
+
// Not valid JSON → ignore
|
|
23490
|
+
return undefined;
|
|
23491
|
+
}
|
|
23492
|
+
// Validate against the allowlisted schema
|
|
23493
|
+
const parsed = ZWhiteLabel_1.ZWhiteLabel.safeParse(json);
|
|
23494
|
+
if (!parsed.success) {
|
|
23495
|
+
// Optionally log parsed.error for diagnostics
|
|
23496
|
+
return undefined;
|
|
23497
|
+
}
|
|
23498
|
+
return parsed.data;
|
|
23499
|
+
}
|
|
23500
|
+
catch (err) {
|
|
23501
|
+
// Abort or network error → treat as “no white label”
|
|
23502
|
+
// if (err?.name !== "AbortError") console.warn("getWhiteLabelling failed", err);
|
|
23503
|
+
return undefined;
|
|
23504
|
+
}
|
|
23505
|
+
finally {
|
|
23506
|
+
clearTimeout(timeoutId);
|
|
23507
|
+
}
|
|
23508
|
+
}
|
|
23509
|
+
return undefined;
|
|
23510
|
+
});
|
|
23511
|
+
}
|
|
23454
23512
|
/** Setup connection string. */
|
|
23455
23513
|
get urlFlags() {
|
|
23456
23514
|
var _a;
|
|
@@ -24371,7 +24429,7 @@ class ArcwarePixelStreaming extends lib_pixelstreamingfrontend_ue5_5_1.PixelStre
|
|
|
24371
24429
|
});
|
|
24372
24430
|
}
|
|
24373
24431
|
applyBrandingFromSettings() {
|
|
24374
|
-
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o;
|
|
24432
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p;
|
|
24375
24433
|
const cfg = ((_b = (_a = this === null || this === void 0 ? void 0 : this.config) === null || _a === void 0 ? void 0 : _a.settings.whiteLabelling) !== null && _b !== void 0 ? _b : {});
|
|
24376
24434
|
// Loader image + fade
|
|
24377
24435
|
try {
|
|
@@ -24380,25 +24438,36 @@ class ArcwarePixelStreaming extends lib_pixelstreamingfrontend_ue5_5_1.PixelStre
|
|
|
24380
24438
|
(_f = (_e = this.logoLoader).setFade) === null || _f === void 0 ? void 0 : _f.call(_e, cfg.loadingIconFadeMs);
|
|
24381
24439
|
}
|
|
24382
24440
|
}
|
|
24383
|
-
catch (
|
|
24384
|
-
//
|
|
24441
|
+
catch (_q) { }
|
|
24442
|
+
// Pick splash host: loveLettersContainer (preferred) or player parent
|
|
24385
24443
|
try {
|
|
24386
24444
|
const el = (_m = (_g = this.loveLettersContainer) !== null && _g !== void 0 ? _g : (_l = (_k = (_j = (_h = this.webRtcController) === null || _h === void 0 ? void 0 : _h.videoPlayer) === null || _j === void 0 ? void 0 : _j.getVideoParentElement) === null || _k === void 0 ? void 0 : _k.call(_j)) === null || _l === void 0 ? void 0 : _l.parentElement) !== null && _m !== void 0 ? _m : null;
|
|
24387
24445
|
if (!el)
|
|
24388
24446
|
return;
|
|
24389
|
-
// Clear previous inline choices
|
|
24390
24447
|
const s = el.style;
|
|
24448
|
+
// Nuke previous inline styles (longhands only; never touch 'background' shorthand here)
|
|
24391
24449
|
s.removeProperty("background-image");
|
|
24392
24450
|
s.removeProperty("background-size");
|
|
24393
24451
|
s.removeProperty("background-repeat");
|
|
24394
24452
|
s.removeProperty("background-position");
|
|
24395
24453
|
s.removeProperty("background-color");
|
|
24454
|
+
// Also clear any earlier 'background' inline shorthand that might have been set elsewhere
|
|
24455
|
+
// (we set to 'initial' first, then re-apply longhands)
|
|
24456
|
+
s.setProperty("background", "initial");
|
|
24396
24457
|
el.classList.remove("aw-splash");
|
|
24397
|
-
|
|
24398
|
-
|
|
24399
|
-
|
|
24400
|
-
|
|
24401
|
-
|
|
24458
|
+
// If neither color nor image is provided, nothing to do
|
|
24459
|
+
const haveColor = !!cfg.splashScreenBgColor;
|
|
24460
|
+
const haveImage = !!cfg.splashScreenUrl;
|
|
24461
|
+
if (!haveColor && !haveImage)
|
|
24462
|
+
return;
|
|
24463
|
+
// Always ensure our class is present when we brand
|
|
24464
|
+
el.classList.add("aw-splash");
|
|
24465
|
+
// Apply color with !important so external 'background: ... !important' can't wipe it
|
|
24466
|
+
const bgColor = (_o = cfg.splashScreenBgColor) !== null && _o !== void 0 ? _o : "var(--color0)";
|
|
24467
|
+
s.setProperty("background-color", bgColor, "important");
|
|
24468
|
+
if (haveImage) {
|
|
24469
|
+
// Mode → size/repeat mapping
|
|
24470
|
+
const mode = ((_p = cfg.splashScreenMode) !== null && _p !== void 0 ? _p : "contain");
|
|
24402
24471
|
switch (mode) {
|
|
24403
24472
|
case "contain":
|
|
24404
24473
|
s.backgroundSize = "contain";
|
|
@@ -24413,17 +24482,25 @@ class ArcwarePixelStreaming extends lib_pixelstreamingfrontend_ue5_5_1.PixelStre
|
|
|
24413
24482
|
s.backgroundRepeat = "no-repeat";
|
|
24414
24483
|
break;
|
|
24415
24484
|
case "repeat":
|
|
24416
|
-
s.backgroundSize = "auto"; //
|
|
24485
|
+
s.backgroundSize = "auto"; // intrinsic
|
|
24417
24486
|
s.backgroundRepeat = "repeat";
|
|
24418
24487
|
break;
|
|
24419
24488
|
}
|
|
24420
|
-
// Position
|
|
24489
|
+
// Position
|
|
24421
24490
|
s.backgroundPosition = cfg.splashScreenPosition || "center center";
|
|
24422
|
-
|
|
24491
|
+
// Image last (longhand so it won't reset color)
|
|
24492
|
+
// Use quotes to be safe with URLs containing parentheses/spaces
|
|
24423
24493
|
s.backgroundImage = `url("${cfg.splashScreenUrl}")`;
|
|
24424
24494
|
}
|
|
24495
|
+
else {
|
|
24496
|
+
// No image → ensure any previous image is cleared
|
|
24497
|
+
s.backgroundImage = "none";
|
|
24498
|
+
s.backgroundRepeat = "no-repeat";
|
|
24499
|
+
s.backgroundPosition = "center center";
|
|
24500
|
+
s.backgroundSize = "auto";
|
|
24501
|
+
}
|
|
24425
24502
|
}
|
|
24426
|
-
catch (
|
|
24503
|
+
catch (_r) { }
|
|
24427
24504
|
}
|
|
24428
24505
|
}
|
|
24429
24506
|
exports.ArcwarePixelStreaming = ArcwarePixelStreaming;
|
|
@@ -24439,6 +24516,7 @@ Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
|
24439
24516
|
exports.ArcwareSettingsSchema = void 0;
|
|
24440
24517
|
const zod_1 = __webpack_require__(8754);
|
|
24441
24518
|
const shared_pixelstreaming_websdk_1 = __webpack_require__(7910);
|
|
24519
|
+
const ZWhiteLabel_1 = __webpack_require__(467);
|
|
24442
24520
|
/** Arcware Settings. */
|
|
24443
24521
|
exports.ArcwareSettingsSchema = zod_1.z.object({
|
|
24444
24522
|
/** Overwrites the Session-Tool and uses the provided session instead. */
|
|
@@ -24497,7 +24575,7 @@ exports.ArcwareSettingsSchema = zod_1.z.object({
|
|
|
24497
24575
|
.strict()
|
|
24498
24576
|
.optional(),
|
|
24499
24577
|
/** Loader customization */
|
|
24500
|
-
whiteLabelling:
|
|
24578
|
+
whiteLabelling: ZWhiteLabel_1.ZWhiteLabel.optional()
|
|
24501
24579
|
});
|
|
24502
24580
|
|
|
24503
24581
|
|
|
@@ -25288,6 +25366,40 @@ class DiagnosticsCollector {
|
|
|
25288
25366
|
exports.DiagnosticsCollector = DiagnosticsCollector;
|
|
25289
25367
|
|
|
25290
25368
|
|
|
25369
|
+
/***/ }),
|
|
25370
|
+
|
|
25371
|
+
/***/ 467:
|
|
25372
|
+
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
|
|
25373
|
+
|
|
25374
|
+
|
|
25375
|
+
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
25376
|
+
exports.ZWhiteLabel = void 0;
|
|
25377
|
+
const zod_1 = __webpack_require__(8754);
|
|
25378
|
+
/** Absolute HTTPS URL (no http) */
|
|
25379
|
+
const AbsoluteHttpsUrl = zod_1.z
|
|
25380
|
+
.string()
|
|
25381
|
+
.url()
|
|
25382
|
+
.refine((u) => u.startsWith("https://"), { message: "URL must use https://" });
|
|
25383
|
+
/** Relative path (no scheme like http:, data:, javascript:, etc.) */
|
|
25384
|
+
const RelativePath = zod_1.z
|
|
25385
|
+
.string()
|
|
25386
|
+
.min(1)
|
|
25387
|
+
.refine((s) => !/^[a-zA-Z][a-zA-Z0-9+.-]*:/.test(s), { message: "Expected a relative path without a URL scheme" });
|
|
25388
|
+
/** Image URL can be absolute (https) or relative (e.g. /assets/logo.png, ./img.png) */
|
|
25389
|
+
const ImageUrl = zod_1.z.union([AbsoluteHttpsUrl, RelativePath]);
|
|
25390
|
+
/** Strict allowlist for white-label brand fields coming from the URL */
|
|
25391
|
+
exports.ZWhiteLabel = zod_1.z
|
|
25392
|
+
.object({
|
|
25393
|
+
loadingIconUrl: ImageUrl.optional(),
|
|
25394
|
+
loadingIconFadeMs: zod_1.z.number().int().positive().optional(),
|
|
25395
|
+
splashScreenUrl: ImageUrl.optional(),
|
|
25396
|
+
splashScreenMode: zod_1.z.enum(["contain", "cover", "stretch", "repeat"]).optional(),
|
|
25397
|
+
splashScreenPosition: zod_1.z.string().optional(),
|
|
25398
|
+
splashScreenBgColor: zod_1.z.string().optional()
|
|
25399
|
+
})
|
|
25400
|
+
.strict();
|
|
25401
|
+
|
|
25402
|
+
|
|
25291
25403
|
/***/ }),
|
|
25292
25404
|
|
|
25293
25405
|
/***/ 2483:
|
|
@@ -25424,7 +25536,7 @@ exports.waitForElement = waitForElement;
|
|
|
25424
25536
|
|
|
25425
25537
|
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
25426
25538
|
exports.readWhiteLabelFromQuery = void 0;
|
|
25427
|
-
const
|
|
25539
|
+
const ZWhiteLabel_1 = __webpack_require__(467);
|
|
25428
25540
|
function decodeBase64OrBase64Url(raw) {
|
|
25429
25541
|
const normalized = raw.replace(/-/g, "+").replace(/_/g, "/");
|
|
25430
25542
|
const padded = normalized + "===".slice((normalized.length + 3) % 4);
|
|
@@ -25435,14 +25547,13 @@ function decodeBase64OrBase64Url(raw) {
|
|
|
25435
25547
|
}
|
|
25436
25548
|
/** Parse ?wl=... (or ?whitelabel=...) → validated partial settings */
|
|
25437
25549
|
function readWhiteLabelFromQuery(qs) {
|
|
25438
|
-
var _a;
|
|
25439
25550
|
try {
|
|
25440
|
-
const raw =
|
|
25551
|
+
const raw = qs.get("wl");
|
|
25441
25552
|
if (!raw)
|
|
25442
25553
|
return undefined;
|
|
25443
25554
|
const jsonStr = decodeBase64OrBase64Url(raw);
|
|
25444
25555
|
const obj = JSON.parse(jsonStr);
|
|
25445
|
-
const parsed =
|
|
25556
|
+
const parsed = ZWhiteLabel_1.ZWhiteLabel.safeParse(obj);
|
|
25446
25557
|
if (!parsed.success) {
|
|
25447
25558
|
//console.warn("[ArcwareConfig] Invalid wl payload:", parsed.error?.flatten?.());
|
|
25448
25559
|
return undefined;
|
|
@@ -27156,40 +27267,6 @@ exports.Send = {
|
|
|
27156
27267
|
};
|
|
27157
27268
|
|
|
27158
27269
|
|
|
27159
|
-
/***/ }),
|
|
27160
|
-
|
|
27161
|
-
/***/ 6750:
|
|
27162
|
-
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
|
|
27163
|
-
|
|
27164
|
-
|
|
27165
|
-
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
27166
|
-
exports.ZWhiteLabel = void 0;
|
|
27167
|
-
const zod_1 = __webpack_require__(8754);
|
|
27168
|
-
/** Absolute HTTPS URL (no http) */
|
|
27169
|
-
const AbsoluteHttpsUrl = zod_1.z
|
|
27170
|
-
.string()
|
|
27171
|
-
.url()
|
|
27172
|
-
.refine((u) => u.startsWith("https://"), { message: "URL must use https://" });
|
|
27173
|
-
/** Relative path (no scheme like http:, data:, javascript:, etc.) */
|
|
27174
|
-
const RelativePath = zod_1.z
|
|
27175
|
-
.string()
|
|
27176
|
-
.min(1)
|
|
27177
|
-
.refine((s) => !/^[a-zA-Z][a-zA-Z0-9+.-]*:/.test(s), { message: "Expected a relative path without a URL scheme" });
|
|
27178
|
-
/** Image URL can be absolute (https) or relative (e.g. /assets/logo.png, ./img.png) */
|
|
27179
|
-
const ImageUrl = zod_1.z.union([AbsoluteHttpsUrl, RelativePath]);
|
|
27180
|
-
/** Strict allowlist for white-label brand fields coming from the URL */
|
|
27181
|
-
exports.ZWhiteLabel = zod_1.z
|
|
27182
|
-
.object({
|
|
27183
|
-
loadingIconUrl: ImageUrl.optional(),
|
|
27184
|
-
loadingIconFadeMs: zod_1.z.number().int().positive().optional(),
|
|
27185
|
-
splashScreenUrl: ImageUrl.optional(),
|
|
27186
|
-
splashScreenMode: zod_1.z.enum(["contain", "cover", "stretch", "repeat"]).optional(),
|
|
27187
|
-
splashScreenPosition: zod_1.z.string().optional(),
|
|
27188
|
-
splashScreenBgColor: zod_1.z.string().optional()
|
|
27189
|
-
})
|
|
27190
|
-
.strict();
|
|
27191
|
-
|
|
27192
|
-
|
|
27193
27270
|
/***/ }),
|
|
27194
27271
|
|
|
27195
27272
|
/***/ 318:
|
|
@@ -27197,10 +27274,8 @@ exports.ZWhiteLabel = zod_1.z
|
|
|
27197
27274
|
|
|
27198
27275
|
|
|
27199
27276
|
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
27200
|
-
exports.
|
|
27277
|
+
exports.Messages = void 0;
|
|
27201
27278
|
exports.Messages = __webpack_require__(5387);
|
|
27202
|
-
var ZWhiteLabel_1 = __webpack_require__(6750);
|
|
27203
|
-
Object.defineProperty(exports, "ZWhiteLabel", ({ enumerable: true, get: function () { return ZWhiteLabel_1.ZWhiteLabel; } }));
|
|
27204
27279
|
|
|
27205
27280
|
|
|
27206
27281
|
/***/ }),
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@arcware-cloud/pixelstreaming-websdk",
|
|
3
3
|
"description": "WebSDK for easy implementation of pixel streaming with Arcware Cloud Services. Heavily based on the '@epicgames-ps' library.",
|
|
4
|
-
"version": "1.3.
|
|
4
|
+
"version": "1.3.15",
|
|
5
5
|
"type": "commonjs",
|
|
6
6
|
"main": "./index.umd.js",
|
|
7
7
|
"module": "./index.umd.js",
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { Config, ConfigParams } from "@epicgames-ps/lib-pixelstreamingfrontend-ue5.5";
|
|
2
2
|
import { Session } from "./domain/Session";
|
|
3
3
|
import { Settings } from "./domain/ArcwareSettingsSchema";
|
|
4
|
+
import { WhiteLabel } from "./features/ZWhiteLabel";
|
|
4
5
|
/** Default arcware signalling endpoint. */
|
|
5
6
|
export declare const DefaultUrl: "wss://signalling-client.ragnarok.arcware.cloud";
|
|
6
7
|
export interface ArcwareConfigParams extends ConfigParams {
|
|
@@ -26,8 +27,9 @@ export declare class ArcwareConfig extends Config {
|
|
|
26
27
|
readonly session: Session;
|
|
27
28
|
readonly settings: Settings;
|
|
28
29
|
private _initialSettings;
|
|
29
|
-
readonly VERSION = "1.3.
|
|
30
|
+
readonly VERSION = "1.3.15";
|
|
30
31
|
constructor(config: ArcwareConfigParams);
|
|
32
|
+
static getWhiteLabelling(ShareId: string, URL?: string): Promise<WhiteLabel | undefined>;
|
|
31
33
|
/** Setup connection string. */
|
|
32
34
|
get urlFlags(): string;
|
|
33
35
|
get initialSettings(): any;
|
|
@@ -35,7 +35,8 @@ export declare const ArcwareSettingsSchema: z.ZodObject<{
|
|
|
35
35
|
waited: z.ZodOptional<z.ZodNumber>;
|
|
36
36
|
estimatedWaitTime: z.ZodNullable<z.ZodOptional<z.ZodNumber>>;
|
|
37
37
|
averageWaitTime: z.ZodNullable<z.ZodOptional<z.ZodNumber>>;
|
|
38
|
-
valueType: z.ZodEnum<["milliseconds", "seconds", "minutes", "hours", "days"]>;
|
|
38
|
+
valueType: z.ZodEnum<["milliseconds", "seconds", "minutes", "hours", "days"]>; /** Handler for love letters.
|
|
39
|
+
* "LoveLetters" are send from backend to the SDK to state what phase the connection currently is in. */
|
|
39
40
|
}, "strip", z.ZodTypeAny, {
|
|
40
41
|
index?: number;
|
|
41
42
|
queueLength?: number;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { ZWhiteLabel } from "
|
|
1
|
+
import { ZWhiteLabel } from "./ZWhiteLabel";
|
|
2
2
|
import { z } from "zod";
|
|
3
3
|
/** Parse ?wl=... (or ?whitelabel=...) → validated partial settings */
|
|
4
4
|
export declare function readWhiteLabelFromQuery(qs: URLSearchParams): Partial<z.infer<typeof ZWhiteLabel>> | undefined;
|