@arcware-cloud/pixelstreaming-websdk 1.3.13 → 1.3.16

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/index.umd.js CHANGED
@@ -23363,11 +23363,14 @@ 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);
23373
+ const EventHandler_1 = __webpack_require__(3379);
23371
23374
  /** Default arcware signalling endpoint. */
23372
23375
  exports.DefaultUrl = `wss://signalling-client.ragnarok.arcware.cloud`;
23373
23376
  // The below Logger overrides can likely be removed as PSInfra 5.5 logger supports setting log verbosity
@@ -23383,6 +23386,14 @@ Logger.Error = (message: string) => {
23383
23386
  console.error(message);
23384
23387
  };*/
23385
23388
  lib_pixelstreamingfrontend_ue5_5_1.Logger.InitLogging(2, false);
23389
+ function deepEqual(a, b) {
23390
+ try {
23391
+ return JSON.stringify(a) === JSON.stringify(b);
23392
+ }
23393
+ catch (_a) {
23394
+ return false;
23395
+ }
23396
+ }
23386
23397
  class ArcwareConfig extends lib_pixelstreamingfrontend_ue5_5_1.Config {
23387
23398
  /**
23388
23399
  * Can be used to fetch projectId and shareId from the current url.
@@ -23431,7 +23442,13 @@ class ArcwareConfig extends lib_pixelstreamingfrontend_ue5_5_1.Config {
23431
23442
  if (!config.initialSettings.ss)
23432
23443
  config.initialSettings.ss = exports.DefaultUrl;
23433
23444
  super(config);
23434
- this.VERSION = "1.3.13";
23445
+ this.VERSION = "1.3.16";
23446
+ this.whiteLabellingChanged = new EventHandler_1.EventHandler();
23447
+ this.signallingWlURL = "https://signalling-client.arcware.cloud/whiteLabel/";
23448
+ console.log(config);
23449
+ if (config.envName) {
23450
+ this.signallingWlURL = `https://signalling-client.${config.envName}.arcware.cloud/whiteLabel/`;
23451
+ }
23435
23452
  this.settings = settings;
23436
23453
  this.session = new Session_1.Session();
23437
23454
  this._initialSettings = config.initialSettings;
@@ -23443,14 +23460,66 @@ class ArcwareConfig extends lib_pixelstreamingfrontend_ue5_5_1.Config {
23443
23460
  if (this.useUrlParams) {
23444
23461
  // Get the query string from URL
23445
23462
  const qs = new URLSearchParams(window.location.search);
23446
- // Retrieve image loading from there
23447
- const wlParsed = this.useUrlParams ? (0, whiteLabelling_1.readWhiteLabelFromQuery)(qs) : undefined; // respect useUrlParams
23448
- if (wlParsed) {
23449
- this.settings.whiteLabelling = Object.assign(Object.assign({}, ((_c = this.settings.whiteLabelling) !== null && _c !== void 0 ? _c : {})), wlParsed);
23463
+ if (qs.has("wl") && qs.get("wl") !== "") {
23464
+ // Retrieve image loading from there
23465
+ const wlParsed = this.useUrlParams ? (0, whiteLabelling_1.readWhiteLabelFromQuery)(qs) : undefined; // respect useUrlParams
23466
+ if (wlParsed) {
23467
+ this.settings.whiteLabelling = Object.assign(Object.assign({}, ((_c = this.settings.whiteLabelling) !== null && _c !== void 0 ? _c : {})), wlParsed);
23468
+ }
23450
23469
  }
23451
23470
  this.settings.infoButton = qs.has("i") || qs.has("info");
23452
23471
  }
23453
23472
  }
23473
+ getWhiteLabelling(ShareId) {
23474
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
23475
+ const qs = new URLSearchParams(window.location.search);
23476
+ // Only fetch when wl param is present and empty (as before)
23477
+ if (!(qs.has("wl") && qs.get("wl") === ""))
23478
+ return undefined;
23479
+ // Build final URL safely (trim trailing slashes, encode ShareId)
23480
+ const base = this.signallingWlURL.replace(/\/+$/, "");
23481
+ const requestUrl = `${base}/${encodeURIComponent(ShareId)}`;
23482
+ const controller = new AbortController();
23483
+ const timeoutId = setTimeout(() => controller.abort(), 1000);
23484
+ try {
23485
+ const res = yield fetch(requestUrl, {
23486
+ method: "GET",
23487
+ signal: controller.signal,
23488
+ headers: { Accept: "application/json, text/plain" },
23489
+ credentials: "omit"
23490
+ });
23491
+ if (!res.ok)
23492
+ return undefined;
23493
+ const text = yield res.text();
23494
+ if (!text || text.trim() === "")
23495
+ return undefined;
23496
+ let json;
23497
+ try {
23498
+ json = JSON.parse(text);
23499
+ }
23500
+ catch (_a) {
23501
+ return undefined;
23502
+ }
23503
+ const parsed = ZWhiteLabel_1.ZWhiteLabel.safeParse(json);
23504
+ if (!parsed.success)
23505
+ return undefined;
23506
+ // Only apply & emit if it actually changed
23507
+ const prev = this.settings.whiteLabelling;
23508
+ const next = parsed.data;
23509
+ if (!deepEqual(prev, next)) {
23510
+ this.settings.whiteLabelling = next;
23511
+ EventHandler_1.EventHandler.Emit(this.whiteLabellingChanged, next);
23512
+ }
23513
+ return parsed.data;
23514
+ }
23515
+ catch (_b) {
23516
+ return undefined;
23517
+ }
23518
+ finally {
23519
+ clearTimeout(timeoutId);
23520
+ }
23521
+ });
23522
+ }
23454
23523
  /** Setup connection string. */
23455
23524
  get urlFlags() {
23456
23525
  var _a;
@@ -23525,6 +23594,7 @@ let globalApplication = null;
23525
23594
  let previousShareId = null;
23526
23595
  let previousProjectId = null;
23527
23596
  function ArcwareInit({ shareId, projectId }, configuration, forceRefresh = false) {
23597
+ var _a;
23528
23598
  if (shareId && !shareId.startsWith("share-"))
23529
23599
  throw new Error(`Unexpected shareId-format: '${shareId}'.`);
23530
23600
  if (shareId && previousShareId !== shareId) {
@@ -23564,7 +23634,8 @@ function ArcwareInit({ shareId, projectId }, configuration, forceRefresh = false
23564
23634
  splashScreenMode: undefined,
23565
23635
  splashScreenPosition: undefined,
23566
23636
  splashScreenBgColor: undefined
23567
- } }, configuration === null || configuration === void 0 ? void 0 : configuration.settings)
23637
+ } }, configuration === null || configuration === void 0 ? void 0 : configuration.settings),
23638
+ envName: (_a = configuration === null || configuration === void 0 ? void 0 : configuration.envName) !== null && _a !== void 0 ? _a : undefined
23568
23639
  });
23569
23640
  const PixelStreaming = new ArcwarePixelStreaming_1.ArcwarePixelStreaming(Config);
23570
23641
  const Application = new ArcwareApplication_1.ArcwareApplication({ stream: PixelStreaming });
@@ -23732,6 +23803,32 @@ class ArcwarePixelStreaming extends lib_pixelstreamingfrontend_ue5_5_1.PixelStre
23732
23803
  });
23733
23804
  // Set override config.
23734
23805
  this.config = config;
23806
+ // Re-apply branding whenever config's WL changes
23807
+ this.config.whiteLabellingChanged.add(() => {
23808
+ try {
23809
+ this.applyBrandingFromSettings();
23810
+ }
23811
+ catch (_a) { }
23812
+ });
23813
+ // Kick off WL fetch once (if we have a shareId); on success it will emit and re-apply
23814
+ (() => tslib_1.__awaiter(this, void 0, void 0, function* () {
23815
+ try {
23816
+ const sid = this.config.settings.shareId;
23817
+ if (sid) {
23818
+ yield this.config.getWhiteLabelling(sid); // will emit if it changes
23819
+ }
23820
+ }
23821
+ catch (_d) {
23822
+ // ignore
23823
+ }
23824
+ finally {
23825
+ // Make sure we paint with whatever we have initially
23826
+ try {
23827
+ this.applyBrandingFromSettings();
23828
+ }
23829
+ catch (_e) { }
23830
+ }
23831
+ }))();
23735
23832
  this.loveLettersList = [];
23736
23833
  this.microphoneOverlay = new MicrophoneOverlay_1.MicrophoneOverlay(this);
23737
23834
  this.diagnosticsCollector = new DiagnosticsCollector_1.DiagnosticsCollector({
@@ -23913,7 +24010,7 @@ class ArcwarePixelStreaming extends lib_pixelstreamingfrontend_ue5_5_1.PixelStre
23913
24010
  });
23914
24011
  }
23915
24012
  }
23916
- this.applyBrandingFromSettings();
24013
+ //this.applyBrandingFromSettings();
23917
24014
  this.handleMouseLock();
23918
24015
  this.injectCustomUI();
23919
24016
  }
@@ -24255,8 +24352,6 @@ class ArcwarePixelStreaming extends lib_pixelstreamingfrontend_ue5_5_1.PixelStre
24255
24352
  (_a = logoLoader.setHostElement) === null || _a === void 0 ? void 0 : _a.call(logoLoader, loaderRoot);
24256
24353
  loveLettersContainer.appendChild(lettersBlock);
24257
24354
  lettersBlock.appendChild(lettersWrapper);
24258
- // apply current (local) settings immediately
24259
- this.applyBrandingFromSettings();
24260
24355
  }
24261
24356
  }
24262
24357
  pushLetter(letter) {
@@ -24371,7 +24466,7 @@ class ArcwarePixelStreaming extends lib_pixelstreamingfrontend_ue5_5_1.PixelStre
24371
24466
  });
24372
24467
  }
24373
24468
  applyBrandingFromSettings() {
24374
- var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o;
24469
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p;
24375
24470
  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
24471
  // Loader image + fade
24377
24472
  try {
@@ -24380,25 +24475,36 @@ class ArcwarePixelStreaming extends lib_pixelstreamingfrontend_ue5_5_1.PixelStre
24380
24475
  (_f = (_e = this.logoLoader).setFade) === null || _f === void 0 ? void 0 : _f.call(_e, cfg.loadingIconFadeMs);
24381
24476
  }
24382
24477
  }
24383
- catch (_p) { }
24384
- // Splash on loveLettersContainer (preferred), fallback to player parent
24478
+ catch (_q) { }
24479
+ // Pick splash host: loveLettersContainer (preferred) or player parent
24385
24480
  try {
24386
24481
  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
24482
  if (!el)
24388
24483
  return;
24389
- // Clear previous inline choices
24390
24484
  const s = el.style;
24485
+ // Nuke previous inline styles (longhands only; never touch 'background' shorthand here)
24391
24486
  s.removeProperty("background-image");
24392
24487
  s.removeProperty("background-size");
24393
24488
  s.removeProperty("background-repeat");
24394
24489
  s.removeProperty("background-position");
24395
24490
  s.removeProperty("background-color");
24491
+ // Also clear any earlier 'background' inline shorthand that might have been set elsewhere
24492
+ // (we set to 'initial' first, then re-apply longhands)
24493
+ s.setProperty("background", "initial");
24396
24494
  el.classList.remove("aw-splash");
24397
- if (cfg.splashScreenUrl) {
24398
- el.classList.add("aw-splash"); // keeps your global defaults
24399
- // Compute mode (default to 'contain' if not provided)
24400
- const mode = ((_o = cfg.splashScreenMode) !== null && _o !== void 0 ? _o : "contain");
24401
- // Apply sizing/repeat per mode
24495
+ // If neither color nor image is provided, nothing to do
24496
+ const haveColor = !!cfg.splashScreenBgColor;
24497
+ const haveImage = !!cfg.splashScreenUrl;
24498
+ if (!haveColor && !haveImage)
24499
+ return;
24500
+ // Always ensure our class is present when we brand
24501
+ el.classList.add("aw-splash");
24502
+ // Apply color with !important so external 'background: ... !important' can't wipe it
24503
+ const bgColor = (_o = cfg.splashScreenBgColor) !== null && _o !== void 0 ? _o : "var(--color0)";
24504
+ s.setProperty("background-color", bgColor, "important");
24505
+ if (haveImage) {
24506
+ // Mode → size/repeat mapping
24507
+ const mode = ((_p = cfg.splashScreenMode) !== null && _p !== void 0 ? _p : "contain");
24402
24508
  switch (mode) {
24403
24509
  case "contain":
24404
24510
  s.backgroundSize = "contain";
@@ -24413,17 +24519,25 @@ class ArcwarePixelStreaming extends lib_pixelstreamingfrontend_ue5_5_1.PixelStre
24413
24519
  s.backgroundRepeat = "no-repeat";
24414
24520
  break;
24415
24521
  case "repeat":
24416
- s.backgroundSize = "auto"; // keep intrinsic px
24522
+ s.backgroundSize = "auto"; // intrinsic
24417
24523
  s.backgroundRepeat = "repeat";
24418
24524
  break;
24419
24525
  }
24420
- // Position & color (optional)
24526
+ // Position
24421
24527
  s.backgroundPosition = cfg.splashScreenPosition || "center center";
24422
- s.backgroundColor = cfg.splashScreenBgColor || "var(--color0)";
24528
+ // Image last (longhand so it won't reset color)
24529
+ // Use quotes to be safe with URLs containing parentheses/spaces
24423
24530
  s.backgroundImage = `url("${cfg.splashScreenUrl}")`;
24424
24531
  }
24532
+ else {
24533
+ // No image → ensure any previous image is cleared
24534
+ s.backgroundImage = "none";
24535
+ s.backgroundRepeat = "no-repeat";
24536
+ s.backgroundPosition = "center center";
24537
+ s.backgroundSize = "auto";
24538
+ }
24425
24539
  }
24426
- catch (_q) { }
24540
+ catch (_r) { }
24427
24541
  }
24428
24542
  }
24429
24543
  exports.ArcwarePixelStreaming = ArcwarePixelStreaming;
@@ -24439,6 +24553,7 @@ Object.defineProperty(exports, "__esModule", ({ value: true }));
24439
24553
  exports.ArcwareSettingsSchema = void 0;
24440
24554
  const zod_1 = __webpack_require__(8754);
24441
24555
  const shared_pixelstreaming_websdk_1 = __webpack_require__(7910);
24556
+ const ZWhiteLabel_1 = __webpack_require__(467);
24442
24557
  /** Arcware Settings. */
24443
24558
  exports.ArcwareSettingsSchema = zod_1.z.object({
24444
24559
  /** Overwrites the Session-Tool and uses the provided session instead. */
@@ -24497,7 +24612,7 @@ exports.ArcwareSettingsSchema = zod_1.z.object({
24497
24612
  .strict()
24498
24613
  .optional(),
24499
24614
  /** Loader customization */
24500
- whiteLabelling: shared_pixelstreaming_websdk_1.ZWhiteLabel.optional()
24615
+ whiteLabelling: ZWhiteLabel_1.ZWhiteLabel.optional()
24501
24616
  });
24502
24617
 
24503
24618
 
@@ -25288,6 +25403,40 @@ class DiagnosticsCollector {
25288
25403
  exports.DiagnosticsCollector = DiagnosticsCollector;
25289
25404
 
25290
25405
 
25406
+ /***/ }),
25407
+
25408
+ /***/ 467:
25409
+ /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
25410
+
25411
+
25412
+ Object.defineProperty(exports, "__esModule", ({ value: true }));
25413
+ exports.ZWhiteLabel = void 0;
25414
+ const zod_1 = __webpack_require__(8754);
25415
+ /** Absolute HTTPS URL (no http) */
25416
+ const AbsoluteHttpsUrl = zod_1.z
25417
+ .string()
25418
+ .url()
25419
+ .refine((u) => u.startsWith("https://"), { message: "URL must use https://" });
25420
+ /** Relative path (no scheme like http:, data:, javascript:, etc.) */
25421
+ const RelativePath = zod_1.z
25422
+ .string()
25423
+ .min(1)
25424
+ .refine((s) => !/^[a-zA-Z][a-zA-Z0-9+.-]*:/.test(s), { message: "Expected a relative path without a URL scheme" });
25425
+ /** Image URL can be absolute (https) or relative (e.g. /assets/logo.png, ./img.png) */
25426
+ const ImageUrl = zod_1.z.union([AbsoluteHttpsUrl, RelativePath]);
25427
+ /** Strict allowlist for white-label brand fields coming from the URL */
25428
+ exports.ZWhiteLabel = zod_1.z
25429
+ .object({
25430
+ loadingIconUrl: ImageUrl.optional(),
25431
+ loadingIconFadeMs: zod_1.z.number().int().positive().optional(),
25432
+ splashScreenUrl: ImageUrl.optional(),
25433
+ splashScreenMode: zod_1.z.enum(["contain", "cover", "stretch", "repeat"]).optional(),
25434
+ splashScreenPosition: zod_1.z.string().optional(),
25435
+ splashScreenBgColor: zod_1.z.string().optional()
25436
+ })
25437
+ .strict();
25438
+
25439
+
25291
25440
  /***/ }),
25292
25441
 
25293
25442
  /***/ 2483:
@@ -25424,7 +25573,7 @@ exports.waitForElement = waitForElement;
25424
25573
 
25425
25574
  Object.defineProperty(exports, "__esModule", ({ value: true }));
25426
25575
  exports.readWhiteLabelFromQuery = void 0;
25427
- const shared_pixelstreaming_websdk_1 = __webpack_require__(7910);
25576
+ const ZWhiteLabel_1 = __webpack_require__(467);
25428
25577
  function decodeBase64OrBase64Url(raw) {
25429
25578
  const normalized = raw.replace(/-/g, "+").replace(/_/g, "/");
25430
25579
  const padded = normalized + "===".slice((normalized.length + 3) % 4);
@@ -25435,14 +25584,13 @@ function decodeBase64OrBase64Url(raw) {
25435
25584
  }
25436
25585
  /** Parse ?wl=... (or ?whitelabel=...) → validated partial settings */
25437
25586
  function readWhiteLabelFromQuery(qs) {
25438
- var _a;
25439
25587
  try {
25440
- const raw = (_a = qs.get("wl")) !== null && _a !== void 0 ? _a : qs.get("whitelabel");
25588
+ const raw = qs.get("wl");
25441
25589
  if (!raw)
25442
25590
  return undefined;
25443
25591
  const jsonStr = decodeBase64OrBase64Url(raw);
25444
25592
  const obj = JSON.parse(jsonStr);
25445
- const parsed = shared_pixelstreaming_websdk_1.ZWhiteLabel.safeParse(obj);
25593
+ const parsed = ZWhiteLabel_1.ZWhiteLabel.safeParse(obj);
25446
25594
  if (!parsed.success) {
25447
25595
  //console.warn("[ArcwareConfig] Invalid wl payload:", parsed.error?.flatten?.());
25448
25596
  return undefined;
@@ -27156,40 +27304,6 @@ exports.Send = {
27156
27304
  };
27157
27305
 
27158
27306
 
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
27307
  /***/ }),
27194
27308
 
27195
27309
  /***/ 318:
@@ -27197,10 +27311,8 @@ exports.ZWhiteLabel = zod_1.z
27197
27311
 
27198
27312
 
27199
27313
  Object.defineProperty(exports, "__esModule", ({ value: true }));
27200
- exports.ZWhiteLabel = exports.Messages = void 0;
27314
+ exports.Messages = void 0;
27201
27315
  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
27316
 
27205
27317
 
27206
27318
  /***/ }),
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.13",
4
+ "version": "1.3.16",
5
5
  "type": "commonjs",
6
6
  "main": "./index.umd.js",
7
7
  "module": "./index.umd.js",
@@ -1,10 +1,13 @@
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";
5
+ import { EventHandler } from "./domain/EventHandler";
4
6
  /** Default arcware signalling endpoint. */
5
7
  export declare const DefaultUrl: "wss://signalling-client.ragnarok.arcware.cloud";
6
8
  export interface ArcwareConfigParams extends ConfigParams {
7
9
  settings: Settings;
10
+ envName?: string;
8
11
  }
9
12
  export declare class ArcwareConfig extends Config {
10
13
  /**
@@ -26,8 +29,18 @@ export declare class ArcwareConfig extends Config {
26
29
  readonly session: Session;
27
30
  readonly settings: Settings;
28
31
  private _initialSettings;
29
- readonly VERSION = "1.3.13";
32
+ readonly VERSION = "1.3.16";
33
+ readonly whiteLabellingChanged: EventHandler<{
34
+ loadingIconUrl?: string;
35
+ loadingIconFadeMs?: number;
36
+ splashScreenUrl?: string;
37
+ splashScreenMode?: "repeat" | "contain" | "cover" | "stretch";
38
+ splashScreenPosition?: string;
39
+ splashScreenBgColor?: string;
40
+ }>;
41
+ private signallingWlURL;
30
42
  constructor(config: ArcwareConfigParams);
43
+ getWhiteLabelling(ShareId: string): Promise<WhiteLabel | undefined>;
31
44
  /** Setup connection string. */
32
45
  get urlFlags(): string;
33
46
  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;
@@ -22,3 +22,4 @@ export declare const ZWhiteLabel: z.ZodObject<{
22
22
  splashScreenPosition?: string;
23
23
  splashScreenBgColor?: string;
24
24
  }>;
25
+ export type WhiteLabel = z.infer<typeof ZWhiteLabel>;
@@ -1,4 +1,4 @@
1
- import { ZWhiteLabel } from "@arcware-cloud/shared-pixelstreaming-websdk";
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;
@@ -1,2 +1 @@
1
1
  export * as Messages from "./Messages";
2
- export { ZWhiteLabel } from "./Types/ZWhiteLabel";