@supraio/client-daemon-js 1.0.0-mzbrightsigndecoder.478 → 1.0.0-mzbrightsigndecoder.479

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/daemon.html CHANGED
@@ -4,6 +4,6 @@
4
4
  <title>Supra daemon</title>
5
5
  </head>
6
6
  <body>
7
- <script type="text/javascript" src="daemon.js?v=1.0.0-mzbrightsigndecoder.478"></script>
7
+ <script type="text/javascript" src="daemon.js?v=1.0.0-mzbrightsigndecoder.479"></script>
8
8
  </body>
9
9
  </html>
package/daemon.js CHANGED
@@ -24849,7 +24849,7 @@
24849
24849
  }
24850
24850
 
24851
24851
  // daemon/plain.ts
24852
- var DAEMON_JS_URL = "supra-client-daemon.js?v=1.0.0-mzbrightsigndecoder.478";
24852
+ var DAEMON_JS_URL = "supra-client-daemon.js?v=1.0.0-mzbrightsigndecoder.479";
24853
24853
  async function startPlainDaemon() {
24854
24854
  initBrightSignTCP();
24855
24855
  await initNaClTCP();
@@ -24863,7 +24863,7 @@
24863
24863
  }
24864
24864
 
24865
24865
  // daemon/wasm.ts
24866
- var DAEMON_WASM_URL = "supra-client-daemon.wasm?v=1.0.0-mzbrightsigndecoder.478";
24866
+ var DAEMON_WASM_URL = "supra-client-daemon.wasm?v=1.0.0-mzbrightsigndecoder.479";
24867
24867
  async function startWasmDaemon() {
24868
24868
  initBrightSignTCP();
24869
24869
  await initNaClTCP();
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@supraio/client-daemon-js",
3
- "version": "1.0.0-mzbrightsigndecoder.478",
3
+ "version": "1.0.0-mzbrightsigndecoder.479",
4
4
  "description": "",
5
5
  "main": "sdk.js",
6
6
  "types": "sdk.d.ts",
@@ -18,6 +18,8 @@ declare global {
18
18
  screenStopCompleted?: boolean;
19
19
  /** Set to true after the short-lived screen lifecycle has exited. */
20
20
  screenLifecycleExited?: boolean;
21
+ /** Exact renderer close reason set by the Go bridge before cleanup ends. */
22
+ closeReason?: string;
21
23
  };
22
24
  }
23
25
  }
package/screen.html CHANGED
@@ -5,6 +5,6 @@
5
5
  <link rel="stylesheet" href="screen.css"></link>
6
6
  </head>
7
7
  <body>
8
- <script type="text/javascript" src="screen.js?v=1.0.0-mzbrightsigndecoder.478"></script>
8
+ <script type="text/javascript" src="screen.js?v=1.0.0-mzbrightsigndecoder.479"></script>
9
9
  </body>
10
10
  </html>
package/screen.js CHANGED
@@ -25289,7 +25289,7 @@ self.onmessage = function(event) {
25289
25289
  }
25290
25290
 
25291
25291
  // screen/plain.ts
25292
- var SCREEN_JS_URL = "supra-client-screen.js?v=1.0.0-mzbrightsigndecoder.478";
25292
+ var SCREEN_JS_URL = "supra-client-screen.js?v=1.0.0-mzbrightsigndecoder.479";
25293
25293
  async function startPlainScreen(options) {
25294
25294
  var _a, _b, _c, _d;
25295
25295
  console.log("[Supra screen plain] initialization begin");
@@ -25351,7 +25351,7 @@ self.onmessage = function(event) {
25351
25351
  }
25352
25352
 
25353
25353
  // screen/h264decoder.ts
25354
- var H264_DECODER_URL = "h264decoder.js?v=1.0.0-mzbrightsigndecoder.478";
25354
+ var H264_DECODER_URL = "h264decoder.js?v=1.0.0-mzbrightsigndecoder.479";
25355
25355
  async function initH264Decoder() {
25356
25356
  if (window.VideoDecoder !== void 0) {
25357
25357
  return void 0;
@@ -25390,7 +25390,7 @@ self.onmessage = function(event) {
25390
25390
  }
25391
25391
 
25392
25392
  // screen/wasm.ts
25393
- var SCREEN_WASM_URL = "supra-client-screen.wasm?v=1.0.0-mzbrightsigndecoder.478";
25393
+ var SCREEN_WASM_URL = "supra-client-screen.wasm?v=1.0.0-mzbrightsigndecoder.479";
25394
25394
  async function initializePhase(name, initialize) {
25395
25395
  const startedAt = Date.now();
25396
25396
  console.log(`[Supra screen WASM] ${name} begin`);
@@ -25462,12 +25462,78 @@ self.onmessage = function(event) {
25462
25462
  }
25463
25463
 
25464
25464
  // screen.ts
25465
+ var LAST_CLOSE_REASON_KEY = "supra.lastCloseReason";
25466
+ var LAST_CLOSE_COUNT_KEY = "supra.lastCloseCount";
25467
+ var LAST_CLOSE_AT_KEY = "supra.lastCloseAt";
25468
+ function readStorage(key) {
25469
+ try {
25470
+ return window.localStorage.getItem(key);
25471
+ } catch {
25472
+ return null;
25473
+ }
25474
+ }
25475
+ function writeStorage(key, value) {
25476
+ try {
25477
+ window.localStorage.setItem(key, value);
25478
+ } catch {
25479
+ }
25480
+ }
25481
+ function clearStorage(key) {
25482
+ try {
25483
+ window.localStorage.removeItem(key);
25484
+ } catch {
25485
+ }
25486
+ }
25487
+ function renderReconnectBanner() {
25488
+ var _a, _b;
25489
+ const reason = readStorage(LAST_CLOSE_REASON_KEY);
25490
+ if (!reason) {
25491
+ return;
25492
+ }
25493
+ const count = (_a = readStorage(LAST_CLOSE_COUNT_KEY)) != null ? _a : "1";
25494
+ const at = (_b = readStorage(LAST_CLOSE_AT_KEY)) != null ? _b : "unknown";
25495
+ const existing = document.getElementById("supra-reconnect-banner");
25496
+ if (existing) {
25497
+ existing.remove();
25498
+ }
25499
+ const banner = document.createElement("div");
25500
+ banner.id = "supra-reconnect-banner";
25501
+ banner.textContent = `SUPRA reconnect ${count}x: ${reason} @ ${at}`;
25502
+ banner.style.cssText = [
25503
+ "position:fixed",
25504
+ "top:16px",
25505
+ "left:16px",
25506
+ "padding:10px 14px",
25507
+ "background:rgba(127,29,29,0.92)",
25508
+ "color:#fff",
25509
+ "font:600 18px monospace",
25510
+ "z-index:2147483647",
25511
+ "border:2px solid #fca5a5",
25512
+ "border-radius:6px",
25513
+ "max-width:70vw",
25514
+ "word-break:break-word"
25515
+ ].join(";");
25516
+ document.body.appendChild(banner);
25517
+ }
25518
+ function persistUnexpectedClose(reason) {
25519
+ var _a;
25520
+ const previousCount = Number((_a = readStorage(LAST_CLOSE_COUNT_KEY)) != null ? _a : "0");
25521
+ writeStorage(LAST_CLOSE_REASON_KEY, reason);
25522
+ writeStorage(LAST_CLOSE_COUNT_KEY, String(previousCount + 1));
25523
+ writeStorage(LAST_CLOSE_AT_KEY, (/* @__PURE__ */ new Date()).toISOString());
25524
+ }
25525
+ function clearUnexpectedClose() {
25526
+ clearStorage(LAST_CLOSE_REASON_KEY);
25527
+ clearStorage(LAST_CLOSE_COUNT_KEY);
25528
+ clearStorage(LAST_CLOSE_AT_KEY);
25529
+ }
25465
25530
  window.addEventListener("contextmenu", (ev) => ev.preventDefault());
25466
25531
  window.addEventListener("beforeunload", (ev) => {
25467
25532
  ev.returnValue = "Are you sure you want to leave?";
25468
25533
  });
25469
25534
  window.addEventListener("load", async () => {
25470
- var _a, _b, _c, _d;
25535
+ var _a, _b, _c, _d, _e, _f, _g;
25536
+ renderReconnectBanner();
25471
25537
  try {
25472
25538
  console.log("Supra screen lifecycle load handler start");
25473
25539
  await startScreen();
@@ -25481,12 +25547,15 @@ self.onmessage = function(event) {
25481
25547
  console.log("Supra screen lifecycle finally state", {
25482
25548
  screenStopped: ((_a = window.__supra) == null ? void 0 : _a.screenStopped) === true,
25483
25549
  screenStopCompleted: ((_b = window.__supra) == null ? void 0 : _b.screenStopCompleted) === true,
25484
- screenLifecycleExited: ((_c = window.__supra) == null ? void 0 : _c.screenLifecycleExited) === true
25550
+ screenLifecycleExited: ((_c = window.__supra) == null ? void 0 : _c.screenLifecycleExited) === true,
25551
+ closeReason: (_e = (_d = window.__supra) == null ? void 0 : _d.closeReason) != null ? _e : null
25485
25552
  });
25486
- if (((_d = window.__supra) == null ? void 0 : _d.screenStopped) !== true) {
25553
+ if (((_f = window.__supra) == null ? void 0 : _f.screenStopped) !== true) {
25554
+ persistUnexpectedClose(((_g = window.__supra) == null ? void 0 : _g.closeReason) || "unknown");
25487
25555
  console.log("Reloading window");
25488
25556
  location.reload();
25489
25557
  } else {
25558
+ clearUnexpectedClose();
25490
25559
  console.log("Supra screen lifecycle stop acknowledged; skip reload");
25491
25560
  }
25492
25561
  }