@supraio/client-daemon-js 1.0.0-mzscreengeometry.463 → 1.0.0-mzscreengeometry.464

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-mzscreengeometry.463"></script>
7
+ <script type="text/javascript" src="daemon.js?v=1.0.0-mzscreengeometry.464"></script>
8
8
  </body>
9
9
  </html>
package/daemon.js CHANGED
@@ -17206,6 +17206,37 @@
17206
17206
  }
17207
17207
  });
17208
17208
 
17209
+ // node_modules/@signageos/nacl-decoder/dist/NaClDecoder/geometry.js
17210
+ var require_geometry = __commonJS({
17211
+ "node_modules/@signageos/nacl-decoder/dist/NaClDecoder/geometry.js"(exports) {
17212
+ "use strict";
17213
+ var __assign = exports && exports.__assign || function() {
17214
+ __assign = Object.assign || function(t) {
17215
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
17216
+ s = arguments[i];
17217
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
17218
+ t[p] = s[p];
17219
+ }
17220
+ return t;
17221
+ };
17222
+ return __assign.apply(this, arguments);
17223
+ };
17224
+ Object.defineProperty(exports, "__esModule", { value: true });
17225
+ exports.normalizeGeometry = normalizeGeometry2;
17226
+ function normalizeGeometry2(geometry) {
17227
+ if (!Number.isFinite(geometry.x) || !Number.isFinite(geometry.y) || !Number.isFinite(geometry.width) || !Number.isFinite(geometry.height)) {
17228
+ throw new RangeError("NaCl module geometry values must be finite.");
17229
+ }
17230
+ var width = Math.floor(geometry.width);
17231
+ var height = Math.floor(geometry.height);
17232
+ if (width <= 0 || height <= 0) {
17233
+ throw new RangeError("NaCl module geometry width and height must be positive.");
17234
+ }
17235
+ return __assign(__assign({}, geometry), { width, height });
17236
+ }
17237
+ }
17238
+ });
17239
+
17209
17240
  // node_modules/@signageos/nacl-decoder/dist/NaClDecoder/module.js
17210
17241
  var require_module = __commonJS({
17211
17242
  "node_modules/@signageos/nacl-decoder/dist/NaClDecoder/module.js"(exports) {
@@ -17213,14 +17244,17 @@
17213
17244
  Object.defineProperty(exports, "__esModule", { value: true });
17214
17245
  exports.createNaClModule = createNaClModule;
17215
17246
  exports.removeNaClModule = removeNaClModule;
17247
+ var geometry_1 = require_geometry();
17216
17248
  function handleLoad(event) {
17217
17249
  console.log("nacl load", event);
17218
17250
  }
17219
17251
  function handleCrash(event) {
17220
17252
  console.log("nacl crash", event);
17221
17253
  }
17254
+ var messageListeners = /* @__PURE__ */ new WeakMap();
17222
17255
  function createNaClModule(handleMessage, geometry) {
17223
17256
  var _a, _b, _c, _d;
17257
+ var normalizedGeometry = geometry ? (0, geometry_1.normalizeGeometry)(geometry) : void 0;
17224
17258
  var listenerEl = document.createElement("div");
17225
17259
  listenerEl.setAttribute("id", "listener");
17226
17260
  listenerEl.addEventListener("message", handleMessage, true);
@@ -17230,29 +17264,34 @@
17230
17264
  var baseHref = (_b = (_a = document.getElementsByTagName("base")[0]) === null || _a === void 0 ? void 0 : _a.href) !== null && _b !== void 0 ? _b : location.href;
17231
17265
  var nmpPath = new URL("nacl-decoder.nmf", baseHref).href;
17232
17266
  var naclModuleEl = document.createElement("embed");
17233
- var width = (_c = geometry === null || geometry === void 0 ? void 0 : geometry.width) !== null && _c !== void 0 ? _c : window.screen.width;
17234
- var height = (_d = geometry === null || geometry === void 0 ? void 0 : geometry.height) !== null && _d !== void 0 ? _d : window.screen.height;
17267
+ var width = (_c = normalizedGeometry === null || normalizedGeometry === void 0 ? void 0 : normalizedGeometry.width) !== null && _c !== void 0 ? _c : window.screen.width;
17268
+ var height = (_d = normalizedGeometry === null || normalizedGeometry === void 0 ? void 0 : normalizedGeometry.height) !== null && _d !== void 0 ? _d : window.screen.height;
17235
17269
  naclModuleEl.setAttribute("width", "".concat(width));
17236
17270
  naclModuleEl.setAttribute("height", "".concat(height));
17237
- if (geometry) {
17271
+ if (normalizedGeometry) {
17238
17272
  naclModuleEl.style.position = "absolute";
17239
- naclModuleEl.style.left = "".concat(geometry.x, "px");
17240
- naclModuleEl.style.top = "".concat(geometry.y, "px");
17273
+ naclModuleEl.style.left = "".concat(normalizedGeometry.x, "px");
17274
+ naclModuleEl.style.top = "".concat(normalizedGeometry.y, "px");
17241
17275
  }
17242
17276
  naclModuleEl.setAttribute("src", nmpPath);
17243
17277
  naclModuleEl.setAttribute("type", "application/x-nacl");
17244
17278
  naclModuleEl.setAttribute("id", "nacl_module");
17245
17279
  listenerEl.appendChild(naclModuleEl);
17280
+ messageListeners.set(naclModuleEl, handleMessage);
17246
17281
  return naclModuleEl;
17247
17282
  }
17248
17283
  function removeNaClModule(naclModuleEl) {
17249
17284
  var listenerEl = naclModuleEl.parentElement;
17250
17285
  if (listenerEl) {
17251
- listenerEl.removeEventListener("message", handleLoad, true);
17286
+ var handleMessage = messageListeners.get(naclModuleEl);
17287
+ if (handleMessage) {
17288
+ listenerEl.removeEventListener("message", handleMessage, true);
17289
+ }
17252
17290
  listenerEl.removeEventListener("load", handleLoad, true);
17253
17291
  listenerEl.removeEventListener("crash", handleCrash, true);
17254
17292
  listenerEl.remove();
17255
17293
  }
17294
+ messageListeners.delete(naclModuleEl);
17256
17295
  naclModuleEl.remove();
17257
17296
  }
17258
17297
  }
@@ -17976,14 +18015,17 @@
17976
18015
  var NaClDecoder = (
17977
18016
  /** @class */
17978
18017
  function() {
17979
- function NaClDecoder2(messageSender, naclModuleEl) {
18018
+ function NaClDecoder2(messageSender, naclModuleEl, onDestroy) {
17980
18019
  this.messageSender = messageSender;
17981
18020
  this.naclModuleEl = naclModuleEl;
18021
+ this.onDestroy = onDestroy;
17982
18022
  }
17983
18023
  NaClDecoder2.prototype.destroy = function() {
17984
18024
  return __awaiter(this, void 0, void 0, function() {
17985
- return __generator(this, function(_a) {
18025
+ var _a;
18026
+ return __generator(this, function(_b) {
17986
18027
  (0, module_1.removeNaClModule)(this.naclModuleEl);
18028
+ (_a = this.onDestroy) === null || _a === void 0 ? void 0 : _a.call(this);
17987
18029
  return [
17988
18030
  2
17989
18031
  /*return*/
@@ -18272,6 +18314,25 @@
18272
18314
  var require_dist = __commonJS({
18273
18315
  "node_modules/@signageos/nacl-decoder/dist/index.js"(exports) {
18274
18316
  "use strict";
18317
+ var __extends = exports && exports.__extends || /* @__PURE__ */ function() {
18318
+ var extendStatics = function(d, b) {
18319
+ extendStatics = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function(d2, b2) {
18320
+ d2.__proto__ = b2;
18321
+ } || function(d2, b2) {
18322
+ for (var p in b2) if (Object.prototype.hasOwnProperty.call(b2, p)) d2[p] = b2[p];
18323
+ };
18324
+ return extendStatics(d, b);
18325
+ };
18326
+ return function(d, b) {
18327
+ if (typeof b !== "function" && b !== null)
18328
+ throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
18329
+ extendStatics(d, b);
18330
+ function __() {
18331
+ this.constructor = d;
18332
+ }
18333
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
18334
+ };
18335
+ }();
18275
18336
  var __assign = exports && exports.__assign || function() {
18276
18337
  __assign = Object.assign || function(t) {
18277
18338
  for (var s, i = 1, n = arguments.length; i < n; i++) {
@@ -18283,6 +18344,102 @@
18283
18344
  };
18284
18345
  return __assign.apply(this, arguments);
18285
18346
  };
18347
+ var __awaiter = exports && exports.__awaiter || function(thisArg, _arguments, P, generator) {
18348
+ function adopt(value) {
18349
+ return value instanceof P ? value : new P(function(resolve) {
18350
+ resolve(value);
18351
+ });
18352
+ }
18353
+ return new (P || (P = Promise))(function(resolve, reject) {
18354
+ function fulfilled(value) {
18355
+ try {
18356
+ step(generator.next(value));
18357
+ } catch (e) {
18358
+ reject(e);
18359
+ }
18360
+ }
18361
+ function rejected(value) {
18362
+ try {
18363
+ step(generator["throw"](value));
18364
+ } catch (e) {
18365
+ reject(e);
18366
+ }
18367
+ }
18368
+ function step(result) {
18369
+ result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);
18370
+ }
18371
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
18372
+ });
18373
+ };
18374
+ var __generator = exports && exports.__generator || function(thisArg, body) {
18375
+ var _ = { label: 0, sent: function() {
18376
+ if (t[0] & 1) throw t[1];
18377
+ return t[1];
18378
+ }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype);
18379
+ return g.next = verb(0), g["throw"] = verb(1), g["return"] = verb(2), typeof Symbol === "function" && (g[Symbol.iterator] = function() {
18380
+ return this;
18381
+ }), g;
18382
+ function verb(n) {
18383
+ return function(v) {
18384
+ return step([n, v]);
18385
+ };
18386
+ }
18387
+ function step(op) {
18388
+ if (f) throw new TypeError("Generator is already executing.");
18389
+ while (g && (g = 0, op[0] && (_ = 0)), _) try {
18390
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
18391
+ if (y = 0, t) op = [op[0] & 2, t.value];
18392
+ switch (op[0]) {
18393
+ case 0:
18394
+ case 1:
18395
+ t = op;
18396
+ break;
18397
+ case 4:
18398
+ _.label++;
18399
+ return { value: op[1], done: false };
18400
+ case 5:
18401
+ _.label++;
18402
+ y = op[1];
18403
+ op = [0];
18404
+ continue;
18405
+ case 7:
18406
+ op = _.ops.pop();
18407
+ _.trys.pop();
18408
+ continue;
18409
+ default:
18410
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {
18411
+ _ = 0;
18412
+ continue;
18413
+ }
18414
+ if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {
18415
+ _.label = op[1];
18416
+ break;
18417
+ }
18418
+ if (op[0] === 6 && _.label < t[1]) {
18419
+ _.label = t[1];
18420
+ t = op;
18421
+ break;
18422
+ }
18423
+ if (t && _.label < t[2]) {
18424
+ _.label = t[2];
18425
+ _.ops.push(op);
18426
+ break;
18427
+ }
18428
+ if (t[2]) _.ops.pop();
18429
+ _.trys.pop();
18430
+ continue;
18431
+ }
18432
+ op = body.call(thisArg, _);
18433
+ } catch (e) {
18434
+ op = [6, e];
18435
+ y = 0;
18436
+ } finally {
18437
+ f = t = 0;
18438
+ }
18439
+ if (op[0] & 5) throw op[1];
18440
+ return { value: op[0] ? op[1] : void 0, done: true };
18441
+ }
18442
+ };
18286
18443
  Object.defineProperty(exports, "__esModule", { value: true });
18287
18444
  exports.NaClTCPStreamConnection = exports.NaClTCPStream = exports.NaClTCPPacketConnection = exports.NaClTCPPacket = exports.NaClFrameCollector = exports.VideoProfile = exports.ResultStatus = exports.HWAcceleration = exports.NaClDecoder = void 0;
18288
18445
  exports.isNaClSupported = isNaClSupported3;
@@ -18325,6 +18482,29 @@
18325
18482
  var DEFAULT_OPTIONS = {
18326
18483
  timeoutMs: 1e3
18327
18484
  };
18485
+ var RuntimeOwnedNaClDecoder = (
18486
+ /** @class */
18487
+ function(_super) {
18488
+ __extends(RuntimeOwnedNaClDecoder2, _super);
18489
+ function RuntimeOwnedNaClDecoder2(messageSender, naclModuleEl, releaseRuntime) {
18490
+ var _this = _super.call(this, messageSender, naclModuleEl) || this;
18491
+ _this.releaseRuntime = releaseRuntime;
18492
+ return _this;
18493
+ }
18494
+ RuntimeOwnedNaClDecoder2.prototype.destroy = function() {
18495
+ return __awaiter(this, void 0, void 0, function() {
18496
+ return __generator(this, function(_a) {
18497
+ this.releaseRuntime();
18498
+ return [
18499
+ 2
18500
+ /*return*/
18501
+ ];
18502
+ });
18503
+ });
18504
+ };
18505
+ return RuntimeOwnedNaClDecoder2;
18506
+ }(naclDecoder_1.NaClDecoder)
18507
+ );
18328
18508
  var naclRuntime = null;
18329
18509
  function isNaClSupported3() {
18330
18510
  return (
@@ -18337,26 +18517,48 @@
18337
18517
  if (!isNaClSupported3()) {
18338
18518
  throw new Error("NaCl is not supported in this browser.");
18339
18519
  }
18340
- var runtime = getNaClRuntime(requiredOptions.timeoutMs, options === null || options === void 0 ? void 0 : options.geometry);
18341
- return new naclDecoder_1.NaClDecoder(runtime.messageSender, runtime.naclModuleEl);
18520
+ var _a = acquireNaClRuntime(requiredOptions.timeoutMs, options === null || options === void 0 ? void 0 : options.geometry), runtime = _a.runtime, release = _a.release;
18521
+ return new RuntimeOwnedNaClDecoder(runtime.messageSender, runtime.naclModuleEl, release);
18342
18522
  }
18343
18523
  function createNaClTCP2(options) {
18344
18524
  var decoder = createNaClDecoder2(options);
18345
- return decoder.createTCP();
18525
+ return __assign(__assign({}, decoder.createTCP()), { destroy: function() {
18526
+ return decoder.destroy();
18527
+ } });
18346
18528
  }
18347
- function getNaClRuntime(timeoutMs, geometry) {
18348
- if (naclRuntime) {
18349
- return naclRuntime;
18529
+ function acquireNaClRuntime(timeoutMs, geometry) {
18530
+ var runtime = naclRuntime;
18531
+ if (!runtime) {
18532
+ var messageListeners = (0, messageListeners_1.createMessageListeners)();
18533
+ var messageReceiver = new messageReceiver_1.MessageReceiver(messageListeners);
18534
+ var naclModuleEl = (0, module_1.createNaClModule)(messageReceiver.handleMessage.bind(messageReceiver), geometry);
18535
+ var messageSender = new messageSender_1.MessageSender(naclModuleEl, messageListeners, timeoutMs);
18536
+ runtime = {
18537
+ messageSender,
18538
+ naclModuleEl,
18539
+ ownerCount: 0
18540
+ };
18541
+ naclRuntime = runtime;
18350
18542
  }
18351
- var messageListeners = (0, messageListeners_1.createMessageListeners)();
18352
- var messageReceiver = new messageReceiver_1.MessageReceiver(messageListeners);
18353
- var naclModuleEl = (0, module_1.createNaClModule)(messageReceiver.handleMessage.bind(messageReceiver), geometry);
18354
- var messageSender = new messageSender_1.MessageSender(naclModuleEl, messageListeners, timeoutMs);
18355
- naclRuntime = {
18356
- messageSender,
18357
- naclModuleEl
18543
+ runtime.ownerCount += 1;
18544
+ var released = false;
18545
+ return {
18546
+ runtime,
18547
+ release: function() {
18548
+ if (released) {
18549
+ return;
18550
+ }
18551
+ released = true;
18552
+ runtime.ownerCount -= 1;
18553
+ if (runtime.ownerCount > 0) {
18554
+ return;
18555
+ }
18556
+ (0, module_1.removeNaClModule)(runtime.naclModuleEl);
18557
+ if (naclRuntime === runtime) {
18558
+ naclRuntime = null;
18559
+ }
18560
+ }
18358
18561
  };
18359
- return naclRuntime;
18360
18562
  }
18361
18563
  }
18362
18564
  });
@@ -18383,6 +18585,36 @@
18383
18585
  }
18384
18586
  });
18385
18587
 
18588
+ // node_modules/@signageos/samsung-wasm-decoder/dist/WasmDecoder/videoElementGeometry.js
18589
+ var require_videoElementGeometry = __commonJS({
18590
+ "node_modules/@signageos/samsung-wasm-decoder/dist/WasmDecoder/videoElementGeometry.js"(exports) {
18591
+ "use strict";
18592
+ Object.defineProperty(exports, "__esModule", { value: true });
18593
+ exports.normalizeVideoElementGeometry = normalizeVideoElementGeometry;
18594
+ function normalizeDimension(name, value) {
18595
+ var normalizedValue = Math.floor(value);
18596
+ if (!Number.isFinite(value) || normalizedValue <= 0) {
18597
+ throw new RangeError("".concat(name, " must be a finite positive number."));
18598
+ }
18599
+ return normalizedValue;
18600
+ }
18601
+ function normalizeCoordinate(name, value) {
18602
+ if (!Number.isFinite(value)) {
18603
+ throw new RangeError("".concat(name, " must be a finite number."));
18604
+ }
18605
+ return value;
18606
+ }
18607
+ function normalizeVideoElementGeometry(geometry) {
18608
+ return {
18609
+ x: normalizeCoordinate("x", geometry.x),
18610
+ y: normalizeCoordinate("y", geometry.y),
18611
+ width: normalizeDimension("width", geometry.width),
18612
+ height: normalizeDimension("height", geometry.height)
18613
+ };
18614
+ }
18615
+ }
18616
+ });
18617
+
18386
18618
  // node_modules/@signageos/samsung-wasm-decoder/dist/dom/script.js
18387
18619
  var require_script = __commonJS({
18388
18620
  "node_modules/@signageos/samsung-wasm-decoder/dist/dom/script.js"(exports) {
@@ -19667,6 +19899,7 @@
19667
19899
  Object.defineProperty(exports, "__esModule", { value: true });
19668
19900
  exports.SamsungWasmDecoder = void 0;
19669
19901
  var videoDecoder_1 = require_videoDecoder2();
19902
+ var videoElementGeometry_1 = require_videoElementGeometry();
19670
19903
  var wasmLoader_1 = require_wasmLoader();
19671
19904
  var wasmTCP_1 = require_wasmTCP();
19672
19905
  function detectKeyFrameAnnexB(bytes) {
@@ -19698,19 +19931,24 @@
19698
19931
  return false;
19699
19932
  }
19700
19933
  function ensureVideoElement(videoElementId, geometry) {
19701
- var _a, _b, _c, _d;
19934
+ var normalizedGeometry = (0, videoElementGeometry_1.normalizeVideoElementGeometry)(geometry !== null && geometry !== void 0 ? geometry : {
19935
+ x: 0,
19936
+ y: 0,
19937
+ width: screen.width,
19938
+ height: screen.height
19939
+ });
19702
19940
  var el = document.getElementById(videoElementId);
19703
19941
  if (!el) {
19704
19942
  el = document.createElement("video");
19705
19943
  el.id = videoElementId;
19706
- el.style.position = "absolute";
19707
- el.style.top = "".concat((_a = geometry === null || geometry === void 0 ? void 0 : geometry.y) !== null && _a !== void 0 ? _a : 0, "px");
19708
- el.style.left = "".concat((_b = geometry === null || geometry === void 0 ? void 0 : geometry.x) !== null && _b !== void 0 ? _b : 0, "px");
19709
- el.style.width = "".concat((_c = geometry === null || geometry === void 0 ? void 0 : geometry.width) !== null && _c !== void 0 ? _c : 1920, "px");
19710
- el.style.height = "".concat((_d = geometry === null || geometry === void 0 ? void 0 : geometry.height) !== null && _d !== void 0 ? _d : 1080, "px");
19711
19944
  el.style.backgroundColor = "#000";
19712
19945
  document.body.appendChild(el);
19713
19946
  }
19947
+ el.style.position = "absolute";
19948
+ el.style.top = "".concat(normalizedGeometry.y, "px");
19949
+ el.style.left = "".concat(normalizedGeometry.x, "px");
19950
+ el.style.width = "".concat(normalizedGeometry.width, "px");
19951
+ el.style.height = "".concat(normalizedGeometry.height, "px");
19714
19952
  el.autoplay = true;
19715
19953
  el.muted = true;
19716
19954
  el.playsInline = true;
@@ -20482,7 +20720,7 @@
20482
20720
  }
20483
20721
 
20484
20722
  // daemon/plain.ts
20485
- var DAEMON_JS_URL = "supra-client-daemon.js?v=1.0.0-mzscreengeometry.463";
20723
+ var DAEMON_JS_URL = "supra-client-daemon.js?v=1.0.0-mzscreengeometry.464";
20486
20724
  async function startPlainDaemon() {
20487
20725
  await initNaClTCP();
20488
20726
  await initSamsungWasmTCP();
@@ -20495,7 +20733,7 @@
20495
20733
  }
20496
20734
 
20497
20735
  // daemon/wasm.ts
20498
- var DAEMON_WASM_URL = "supra-client-daemon.wasm?v=1.0.0-mzscreengeometry.463";
20736
+ var DAEMON_WASM_URL = "supra-client-daemon.wasm?v=1.0.0-mzscreengeometry.464";
20499
20737
  async function startWasmDaemon() {
20500
20738
  await initNaClTCP();
20501
20739
  await initSamsungWasmTCP();