@supraio/client-daemon-js 0.0.1 → 1.0.0

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/sdk.d.ts CHANGED
@@ -3,6 +3,7 @@ export { IScreenOptions, IEncodingPreferences } from "./screen/options";
3
3
  export { IScreenControl, IClientStats, createScreenControl } from "./screen/control";
4
4
  export interface StartOptions {
5
5
  forcePlain?: boolean;
6
+ netInWorker?: boolean;
6
7
  }
7
8
  export declare function startDaemon(options?: StartOptions): Promise<void>;
8
9
  export declare function startScreen(options?: StartOptions & IScreenOptions): Promise<void>;
package/sdk.js CHANGED
@@ -20643,7 +20643,7 @@ async function initSamsungWasmTCP() {
20643
20643
  }
20644
20644
 
20645
20645
  // daemon/plain.ts
20646
- var DAEMON_JS_URL = "supra-client-daemon.js?v=0.0.1";
20646
+ var DAEMON_JS_URL = "supra-client-daemon.js?v=1.0.0";
20647
20647
  async function startPlainDaemon() {
20648
20648
  await initNaClTCP();
20649
20649
  await initSamsungWasmTCP();
@@ -20656,7 +20656,7 @@ async function startPlainDaemon() {
20656
20656
  }
20657
20657
 
20658
20658
  // daemon/wasm.ts
20659
- var DAEMON_WASM_URL = "supra-client-daemon.wasm?v=0.0.1";
20659
+ var DAEMON_WASM_URL = "supra-client-daemon.wasm?v=1.0.0";
20660
20660
  async function startWasmDaemon() {
20661
20661
  await initNaClTCP();
20662
20662
  await initSamsungWasmTCP();
@@ -20693,8 +20693,17 @@ var frames = {};
20693
20693
  var closed = false;
20694
20694
  var GENERAL_HEADER_SIZE = 6;
20695
20695
  var FIRST_HEADER_SIZE = GENERAL_HEADER_SIZE + 9;
20696
- var MAX_PACKET_SIZE = 32768;
20697
- var DATA_PART_SIZE = MAX_PACKET_SIZE - GENERAL_HEADER_SIZE;
20696
+
20697
+ function now() {
20698
+ if (
20699
+ typeof performance !== 'undefined' &&
20700
+ typeof performance.timeOrigin === 'number' &&
20701
+ typeof performance.now === 'function'
20702
+ ) {
20703
+ return performance.timeOrigin + performance.now();
20704
+ }
20705
+ return Date.now();
20706
+ }
20698
20707
 
20699
20708
  function postError(id, error) {
20700
20709
  self.postMessage({ type: 'error', id: id, error: error && error.message ? error.message : String(error) });
@@ -20714,7 +20723,8 @@ function resolveFrame() {
20714
20723
  frameType: frame.frameType,
20715
20724
  timestamp: frame.timestamp,
20716
20725
  length: frame.length,
20717
- data: frame.data
20726
+ data: frame.data,
20727
+ firstPacketAt: frame.firstPacketAt
20718
20728
  }, [frame.data]);
20719
20729
  }
20720
20730
 
@@ -20741,11 +20751,12 @@ function handlePacket(buffer) {
20741
20751
  var item = frames[frameID];
20742
20752
  if (!item || seq === 0 || item.total !== total) {
20743
20753
  item = {
20744
- buffer: new Uint8Array(total * DATA_PART_SIZE),
20754
+ packets: new Array(total),
20745
20755
  frameType: 0,
20746
20756
  timestamp: 0,
20747
20757
  total: total,
20748
- received: 0
20758
+ received: 0,
20759
+ firstPacketAt: now()
20749
20760
  };
20750
20761
  frames[frameID] = item;
20751
20762
  if (seq === 0) {
@@ -20759,25 +20770,39 @@ function handlePacket(buffer) {
20759
20770
  }
20760
20771
  }
20761
20772
 
20762
- var dataStartsAt = seq * DATA_PART_SIZE;
20763
- if (seq > 0) {
20764
- dataStartsAt -= FIRST_HEADER_SIZE - GENERAL_HEADER_SIZE;
20773
+ if (total === 0 || seq >= total) {
20774
+ delete frames[frameID];
20775
+ return;
20765
20776
  }
20766
20777
  var packetData = new Uint8Array(buffer, headerSize);
20767
- item.buffer.set(packetData, dataStartsAt);
20768
- item.received++;
20778
+ if (!item.packets[seq]) {
20779
+ item.received++;
20780
+ }
20781
+ item.packets[seq] = packetData;
20769
20782
 
20770
20783
  if (seq + 1 === total) {
20771
20784
  delete frames[frameID];
20772
20785
  if (item.received !== item.total) {
20773
20786
  return;
20774
20787
  }
20775
- var dataEndsAt = dataStartsAt + length - headerSize;
20788
+ var dataLength = 0;
20789
+ var packetIndex;
20790
+ for (packetIndex = 0; packetIndex < item.packets.length; packetIndex++) {
20791
+ dataLength += item.packets[packetIndex].byteLength;
20792
+ }
20793
+ var frameBuffer = new Uint8Array(dataLength);
20794
+ var dataStartsAt = 0;
20795
+ for (packetIndex = 0; packetIndex < item.packets.length; packetIndex++) {
20796
+ var completedPacket = item.packets[packetIndex];
20797
+ frameBuffer.set(completedPacket, dataStartsAt);
20798
+ dataStartsAt += completedPacket.byteLength;
20799
+ }
20776
20800
  latestFrame = {
20777
20801
  frameType: item.frameType,
20778
20802
  timestamp: item.timestamp,
20779
- length: dataEndsAt,
20780
- data: item.buffer.buffer
20803
+ length: dataLength,
20804
+ data: frameBuffer.buffer,
20805
+ firstPacketAt: item.firstPacketAt
20781
20806
  };
20782
20807
  resolveFrame();
20783
20808
  }
@@ -20864,7 +20889,8 @@ var createSupraFrameWorkerConnection = (url) => {
20864
20889
  frameType: message.frameType,
20865
20890
  timestamp: message.timestamp,
20866
20891
  length: message.length,
20867
- data: message.data
20892
+ data: message.data,
20893
+ firstPacketAt: message.firstPacketAt
20868
20894
  });
20869
20895
  }
20870
20896
  };
@@ -20890,8 +20916,9 @@ var createSupraFrameWorkerConnection = (url) => {
20890
20916
  }
20891
20917
  };
20892
20918
  };
20893
- function initWorkerFrameConnection() {
20894
- if (typeof Worker !== "undefined") {
20919
+ function initWorkerFrameConnection(enabled) {
20920
+ delete window.createSupraFrameWorkerConnection;
20921
+ if (enabled && typeof Worker !== "undefined") {
20895
20922
  window.createSupraFrameWorkerConnection = createSupraFrameWorkerConnection;
20896
20923
  }
20897
20924
  }
@@ -20943,7 +20970,8 @@ function parseQueryOptions() {
20943
20970
  clientID: params.clientID,
20944
20971
  clientSecret: params.clientSecret,
20945
20972
  secure: params.secure !== "false",
20946
- interactive: params.interactive === "true"
20973
+ interactive: params.interactive === "true",
20974
+ netInWorker: params.netInWorker === "true"
20947
20975
  };
20948
20976
  if (typeof params.forceScreenSize === "string") {
20949
20977
  const sizeParts = params.forceScreenSize.split("x");
@@ -20996,11 +21024,11 @@ function getGoArgv2(binFile, options) {
20996
21024
  }
20997
21025
 
20998
21026
  // screen/plain.ts
20999
- var SCREEN_JS_URL = "supra-client-screen.js?v=0.0.1";
21027
+ var SCREEN_JS_URL = "supra-client-screen.js?v=1.0.0";
21000
21028
  async function startPlainScreen(options) {
21001
21029
  options = options != null ? options : parseQueryOptions();
21002
21030
  initNaCLDecoder();
21003
- initWorkerFrameConnection();
21031
+ initWorkerFrameConnection(options.netInWorker === true);
21004
21032
  await initNaClTCP();
21005
21033
  await initSamsungWasmTCP();
21006
21034
  await initSamsungWasmDecoder(options);
@@ -21026,10 +21054,10 @@ async function createH264Decoder() {
21026
21054
  }
21027
21055
 
21028
21056
  // screen/wasm.ts
21029
- var SCREEN_WASM_URL = "supra-client-screen.wasm?v=0.0.1";
21057
+ var SCREEN_WASM_URL = "supra-client-screen.wasm?v=1.0.0";
21030
21058
  async function startWasmScreen(options) {
21031
21059
  options = options != null ? options : parseQueryOptions();
21032
- initWorkerFrameConnection();
21060
+ initWorkerFrameConnection(options.netInWorker === true);
21033
21061
  await initSamsungWasmTCP();
21034
21062
  await initSamsungWasmDecoder(options);
21035
21063
  await initH264Decoder();