@illgrenoble/webx-client 0.9.0 → 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.
Files changed (158) hide show
  1. package/dist/WebXClient.d.ts +148 -16
  2. package/dist/WebXClient.js +148 -22
  3. package/dist/WebXClient.js.map +1 -1
  4. package/dist/display/WebXCursor.d.ts +65 -0
  5. package/dist/display/WebXCursor.js +65 -0
  6. package/dist/display/WebXCursor.js.map +1 -1
  7. package/dist/display/WebXCursorFactory.d.ts +18 -0
  8. package/dist/display/WebXCursorFactory.js +39 -16
  9. package/dist/display/WebXCursorFactory.js.map +1 -1
  10. package/dist/display/WebXDisplay.d.ts +139 -8
  11. package/dist/display/WebXDisplay.js +140 -8
  12. package/dist/display/WebXDisplay.js.map +1 -1
  13. package/dist/display/WebXSubImage.d.ts +42 -11
  14. package/dist/display/WebXSubImage.js +18 -12
  15. package/dist/display/WebXSubImage.js.map +1 -1
  16. package/dist/display/WebXTextureFactory.d.ts +30 -0
  17. package/dist/display/WebXTextureFactory.js +56 -19
  18. package/dist/display/WebXTextureFactory.js.map +1 -1
  19. package/dist/display/WebXWindow.d.ts +152 -0
  20. package/dist/display/WebXWindow.js +152 -0
  21. package/dist/display/WebXWindow.js.map +1 -1
  22. package/dist/display/WebXWindowProperties.d.ts +31 -6
  23. package/dist/display/WebXWindowProperties.js +16 -9
  24. package/dist/display/WebXWindowProperties.js.map +1 -1
  25. package/dist/input/WebXKeyboard.d.ts +40 -5
  26. package/dist/input/WebXKeyboard.js +52 -14
  27. package/dist/input/WebXKeyboard.js.map +1 -1
  28. package/dist/input/WebXMouse.d.ts +9 -0
  29. package/dist/input/WebXMouse.js +9 -4
  30. package/dist/input/WebXMouse.js.map +1 -1
  31. package/dist/input/keyboard/WebXKeyEvent.d.ts +35 -3
  32. package/dist/input/keyboard/WebXKeyEvent.js +115 -3
  33. package/dist/input/keyboard/WebXKeyEvent.js.map +1 -1
  34. package/dist/input/keyboard/WebXKeyPressEvent.d.ts +25 -8
  35. package/dist/input/keyboard/WebXKeyPressEvent.js +29 -11
  36. package/dist/input/keyboard/WebXKeyPressEvent.js.map +1 -1
  37. package/dist/input/keyboard/WebXKeyUpEvent.d.ts +30 -9
  38. package/dist/input/keyboard/WebXKeyUpEvent.js +19 -16
  39. package/dist/input/keyboard/WebXKeyUpEvent.js.map +1 -1
  40. package/dist/input/keyboard/WebXKeyboardModifierState.d.ts +69 -8
  41. package/dist/input/keyboard/WebXKeyboardModifierState.js +69 -8
  42. package/dist/input/keyboard/WebXKeyboardModifierState.js.map +1 -1
  43. package/dist/input/keyboard/WebXKeyboardUtils.d.ts +18 -2
  44. package/dist/input/keyboard/WebXKeyboardUtils.js +18 -2
  45. package/dist/input/keyboard/WebXKeyboardUtils.js.map +1 -1
  46. package/dist/input/keyboard/WebXKeydownEvent.d.ts +26 -9
  47. package/dist/input/keyboard/WebXKeydownEvent.js +17 -22
  48. package/dist/input/keyboard/WebXKeydownEvent.js.map +1 -1
  49. package/dist/input/mouse/WebXMouseState.d.ts +113 -2
  50. package/dist/input/mouse/WebXMouseState.js +104 -2
  51. package/dist/input/mouse/WebXMouseState.js.map +1 -1
  52. package/dist/instruction/WebXConnectInstruction.d.ts +16 -1
  53. package/dist/instruction/WebXConnectInstruction.js +13 -1
  54. package/dist/instruction/WebXConnectInstruction.js.map +1 -1
  55. package/dist/instruction/WebXCursorImageInstruction.d.ts +15 -3
  56. package/dist/instruction/WebXCursorImageInstruction.js +12 -5
  57. package/dist/instruction/WebXCursorImageInstruction.js.map +1 -1
  58. package/dist/instruction/WebXDataAckInstruction.d.ts +22 -5
  59. package/dist/instruction/WebXDataAckInstruction.js +15 -9
  60. package/dist/instruction/WebXDataAckInstruction.js.map +1 -1
  61. package/dist/instruction/WebXImageInstruction.d.ts +14 -3
  62. package/dist/instruction/WebXImageInstruction.js +11 -7
  63. package/dist/instruction/WebXImageInstruction.js.map +1 -1
  64. package/dist/instruction/WebXInstruction.d.ts +26 -10
  65. package/dist/instruction/WebXInstruction.js +19 -25
  66. package/dist/instruction/WebXInstruction.js.map +1 -1
  67. package/dist/instruction/WebXInstructionResponse.d.ts +55 -2
  68. package/dist/instruction/WebXInstructionResponse.js +40 -2
  69. package/dist/instruction/WebXInstructionResponse.js.map +1 -1
  70. package/dist/instruction/WebXInstructionType.d.ts +40 -0
  71. package/dist/instruction/WebXInstructionType.js +40 -0
  72. package/dist/instruction/WebXInstructionType.js.map +1 -1
  73. package/dist/instruction/WebXKeyboardInstruction.d.ts +19 -6
  74. package/dist/instruction/WebXKeyboardInstruction.js +13 -14
  75. package/dist/instruction/WebXKeyboardInstruction.js.map +1 -1
  76. package/dist/instruction/WebXMouseInstruction.d.ts +24 -9
  77. package/dist/instruction/WebXMouseInstruction.js +15 -21
  78. package/dist/instruction/WebXMouseInstruction.js.map +1 -1
  79. package/dist/instruction/WebXPongInstruction.d.ts +15 -3
  80. package/dist/instruction/WebXPongInstruction.js +12 -5
  81. package/dist/instruction/WebXPongInstruction.js.map +1 -1
  82. package/dist/instruction/WebXQualityInstruction.d.ts +16 -4
  83. package/dist/instruction/WebXQualityInstruction.js +13 -8
  84. package/dist/instruction/WebXQualityInstruction.js.map +1 -1
  85. package/dist/instruction/WebXScreenInstruction.d.ts +8 -0
  86. package/dist/instruction/WebXScreenInstruction.js +8 -0
  87. package/dist/instruction/WebXScreenInstruction.js.map +1 -1
  88. package/dist/instruction/WebXWindowsInstruction.d.ts +9 -0
  89. package/dist/instruction/WebXWindowsInstruction.js +9 -0
  90. package/dist/instruction/WebXWindowsInstruction.js.map +1 -1
  91. package/dist/message/WebXCursorImageMessage.d.ts +42 -13
  92. package/dist/message/WebXCursorImageMessage.js +24 -25
  93. package/dist/message/WebXCursorImageMessage.js.map +1 -1
  94. package/dist/message/WebXImageMessage.d.ts +37 -11
  95. package/dist/message/WebXImageMessage.js +22 -21
  96. package/dist/message/WebXImageMessage.js.map +1 -1
  97. package/dist/message/WebXMessage.d.ts +22 -6
  98. package/dist/message/WebXMessage.js +15 -9
  99. package/dist/message/WebXMessage.js.map +1 -1
  100. package/dist/message/WebXMessageType.d.ts +35 -0
  101. package/dist/message/WebXMessageType.js +35 -0
  102. package/dist/message/WebXMessageType.js.map +1 -1
  103. package/dist/message/WebXMouseMessage.d.ts +27 -7
  104. package/dist/message/WebXMouseMessage.js +18 -13
  105. package/dist/message/WebXMouseMessage.js.map +1 -1
  106. package/dist/message/WebXPingMessage.d.ts +9 -0
  107. package/dist/message/WebXPingMessage.js +9 -0
  108. package/dist/message/WebXPingMessage.js.map +1 -1
  109. package/dist/message/WebXQualityMessage.d.ts +36 -11
  110. package/dist/message/WebXQualityMessage.js +21 -21
  111. package/dist/message/WebXQualityMessage.js.map +1 -1
  112. package/dist/message/WebXScreenMessage.d.ts +17 -3
  113. package/dist/message/WebXScreenMessage.js +14 -5
  114. package/dist/message/WebXScreenMessage.js.map +1 -1
  115. package/dist/message/WebXSubImagesMessage.d.ts +27 -7
  116. package/dist/message/WebXSubImagesMessage.js +18 -13
  117. package/dist/message/WebXSubImagesMessage.js.map +1 -1
  118. package/dist/message/WebXWindowsMessage.d.ts +17 -3
  119. package/dist/message/WebXWindowsMessage.js +14 -5
  120. package/dist/message/WebXWindowsMessage.js.map +1 -1
  121. package/dist/tracer/WebXDebugImageMessageHandler.d.ts +30 -0
  122. package/dist/tracer/WebXDebugImageMessageHandler.js +30 -0
  123. package/dist/tracer/WebXDebugImageMessageHandler.js.map +1 -1
  124. package/dist/tracer/WebXHandler.d.ts +11 -0
  125. package/dist/tracer/WebXInstructionHandler.d.ts +17 -0
  126. package/dist/tracer/WebXInstructionHandler.js +6 -0
  127. package/dist/tracer/WebXInstructionHandler.js.map +1 -1
  128. package/dist/tracer/WebXMessageHandler.d.ts +17 -0
  129. package/dist/tracer/WebXMessageHandler.js +6 -0
  130. package/dist/tracer/WebXMessageHandler.js.map +1 -1
  131. package/dist/tracer/WebXStatsHandler.d.ts +16 -0
  132. package/dist/tracer/WebXStatsHandler.js +6 -0
  133. package/dist/tracer/WebXStatsHandler.js.map +1 -1
  134. package/dist/transport/WebXBinarySerializer.d.ts +20 -0
  135. package/dist/transport/WebXBinarySerializer.js +20 -0
  136. package/dist/transport/WebXBinarySerializer.js.map +1 -1
  137. package/dist/transport/WebXInstructionBuffer.d.ts +19 -0
  138. package/dist/transport/WebXInstructionBuffer.js +19 -0
  139. package/dist/transport/WebXInstructionBuffer.js.map +1 -1
  140. package/dist/transport/WebXInstructionEncoder.d.ts +138 -0
  141. package/dist/transport/WebXInstructionEncoder.js +138 -110
  142. package/dist/transport/WebXInstructionEncoder.js.map +1 -1
  143. package/dist/transport/WebXMessageBuffer.d.ts +63 -8
  144. package/dist/transport/WebXMessageBuffer.js +51 -16
  145. package/dist/transport/WebXMessageBuffer.js.map +1 -1
  146. package/dist/transport/WebXMessageDecoder.d.ts +69 -0
  147. package/dist/transport/WebXMessageDecoder.js +96 -18
  148. package/dist/transport/WebXMessageDecoder.js.map +1 -1
  149. package/dist/tunnel/WebXTunnel.d.ts +71 -0
  150. package/dist/tunnel/WebXTunnel.js +51 -4
  151. package/dist/tunnel/WebXTunnel.js.map +1 -1
  152. package/dist/tunnel/WebXWebSocketTunnel.d.ts +26 -0
  153. package/dist/tunnel/WebXWebSocketTunnel.js +26 -0
  154. package/dist/tunnel/WebXWebSocketTunnel.js.map +1 -1
  155. package/dist/utils/ColorGenerator.d.ts +19 -0
  156. package/dist/utils/ColorGenerator.js +19 -0
  157. package/dist/utils/ColorGenerator.js.map +1 -1
  158. package/package.json +1 -1
@@ -1,21 +1,76 @@
1
+ /**
2
+ * Represents a buffer for encoding and decoding WebX messages.
3
+ *
4
+ * This class provides methods to write and read data in a structured format
5
+ * for communication with the WebX Engine.
6
+ */
1
7
  export declare class WebXMessageBuffer {
2
8
  private _buffer;
9
+ /**
10
+ * The length of the message header in bytes.
11
+ */
3
12
  static readonly MESSAGE_HEADER_LENGTH = 48;
4
- private readonly _timestampMs;
5
- private readonly _messageTypeId;
6
- private readonly _messageId;
7
- private readonly _bufferLength;
13
+ /**
14
+ * The timestamp in milliseconds when the message was created.
15
+ */
16
+ readonly timestampMs: Uint8Array;
17
+ /**
18
+ * The type ID of the message.
19
+ */
20
+ readonly messageTypeId: number;
21
+ /**
22
+ * The unique ID of the message.
23
+ */
24
+ readonly messageId: number;
25
+ /**
26
+ * The total length of the buffer in bytes.
27
+ */
28
+ readonly bufferLength: number;
8
29
  private _readOffset;
9
30
  private _encoder;
10
- get timestampMs(): Uint8Array;
11
- get messageTypeId(): number;
12
- get messageId(): number;
13
- get bufferLength(): number;
31
+ /**
32
+ * Creates a new instance of WebXMessageBuffer.
33
+ *
34
+ * @param _buffer The buffer to read from.
35
+ */
14
36
  constructor(_buffer: ArrayBuffer);
37
+ /**
38
+ * Reads a 32-bit signed integer from the buffer.
39
+ *
40
+ * @returns The read value.
41
+ */
15
42
  getInt32(): number;
43
+ /**
44
+ * Reads a 32-bit unsigned integer from the buffer.
45
+ *
46
+ * @returns The read value.
47
+ */
16
48
  getUint32(): number;
49
+ /**
50
+ * Reads a 32-bit floating point number from the buffer.
51
+ *
52
+ * @returns The read value.
53
+ */
17
54
  getFloat(): number;
55
+ /**
56
+ * Reads a Uint8Array from the buffer.
57
+ *
58
+ * @param length The length of the array to read.
59
+ * @returns The read Uint8Array.
60
+ */
18
61
  getUint8Array(length: number): Uint8Array;
62
+ /**
63
+ * Reads a string from the buffer.
64
+ *
65
+ * @param length The length of the string to read.
66
+ * @returns The read string.
67
+ */
19
68
  getString(length: number): string;
69
+ /**
70
+ * Calculates the next read offset, ensuring alignment.
71
+ *
72
+ * @param sizeOfData The size of the data to read.
73
+ * @returns The next read offset.
74
+ */
20
75
  private _getNextReadOffset;
21
76
  }
@@ -1,55 +1,87 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.WebXMessageBuffer = void 0;
4
+ /**
5
+ * Represents a buffer for encoding and decoding WebX messages.
6
+ *
7
+ * This class provides methods to write and read data in a structured format
8
+ * for communication with the WebX Engine.
9
+ */
4
10
  class WebXMessageBuffer {
5
- get timestampMs() {
6
- return this._timestampMs;
7
- }
8
- get messageTypeId() {
9
- return this._messageTypeId;
10
- }
11
- get messageId() {
12
- return this._messageId;
13
- }
14
- get bufferLength() {
15
- return this._bufferLength;
16
- }
11
+ /**
12
+ * Creates a new instance of WebXMessageBuffer.
13
+ *
14
+ * @param _buffer The buffer to read from.
15
+ */
17
16
  constructor(_buffer) {
18
17
  this._buffer = _buffer;
19
18
  this._readOffset = 24;
20
19
  this._encoder = new TextDecoder('utf-8');
21
20
  this._readOffset = 24; // Session Id (16) and client index mask (8)
22
- this._timestampMs = this.getUint8Array(8);
23
- this._messageTypeId = this.getUint32();
24
- this._messageId = this.getUint32();
25
- this._bufferLength = this.getUint32();
21
+ this.timestampMs = this.getUint8Array(8);
22
+ this.messageTypeId = this.getUint32();
23
+ this.messageId = this.getUint32();
24
+ this.bufferLength = this.getUint32();
26
25
  this._readOffset = WebXMessageBuffer.MESSAGE_HEADER_LENGTH;
27
26
  }
27
+ /**
28
+ * Reads a 32-bit signed integer from the buffer.
29
+ *
30
+ * @returns The read value.
31
+ */
28
32
  getInt32() {
29
33
  const offset = this._getNextReadOffset(4);
30
34
  const typedArray = new Int32Array(this._buffer, offset, 1);
31
35
  return typedArray[0];
32
36
  }
37
+ /**
38
+ * Reads a 32-bit unsigned integer from the buffer.
39
+ *
40
+ * @returns The read value.
41
+ */
33
42
  getUint32() {
34
43
  const offset = this._getNextReadOffset(4);
35
44
  const typedArray = new Uint32Array(this._buffer, offset, 1);
36
45
  return typedArray[0];
37
46
  }
47
+ /**
48
+ * Reads a 32-bit floating point number from the buffer.
49
+ *
50
+ * @returns The read value.
51
+ */
38
52
  getFloat() {
39
53
  const offset = this._getNextReadOffset(4);
40
54
  const typedArray = new Float32Array(this._buffer, offset, 1);
41
55
  return typedArray[0];
42
56
  }
57
+ /**
58
+ * Reads a Uint8Array from the buffer.
59
+ *
60
+ * @param length The length of the array to read.
61
+ * @returns The read Uint8Array.
62
+ */
43
63
  getUint8Array(length) {
44
64
  const typedArray = new Uint8Array(this._buffer, this._readOffset, length);
45
65
  this._readOffset += length;
46
66
  return typedArray;
47
67
  }
68
+ /**
69
+ * Reads a string from the buffer.
70
+ *
71
+ * @param length The length of the string to read.
72
+ * @returns The read string.
73
+ */
48
74
  getString(length) {
49
75
  const array = new Uint8Array(this._buffer, this._readOffset, length);
50
76
  this._readOffset += length;
51
77
  return this._encoder.decode(array);
52
78
  }
79
+ /**
80
+ * Calculates the next read offset, ensuring alignment.
81
+ *
82
+ * @param sizeOfData The size of the data to read.
83
+ * @returns The next read offset.
84
+ */
53
85
  _getNextReadOffset(sizeOfData) {
54
86
  // Ensure alignment
55
87
  const padding = this._readOffset % sizeOfData > 0 ? sizeOfData - (this._readOffset % sizeOfData) : 0;
@@ -59,5 +91,8 @@ class WebXMessageBuffer {
59
91
  }
60
92
  }
61
93
  exports.WebXMessageBuffer = WebXMessageBuffer;
94
+ /**
95
+ * The length of the message header in bytes.
96
+ */
62
97
  WebXMessageBuffer.MESSAGE_HEADER_LENGTH = 48;
63
98
  //# sourceMappingURL=WebXMessageBuffer.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"WebXMessageBuffer.js","sourceRoot":"","sources":["../../src/transport/WebXMessageBuffer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"WebXMessageBuffer.js","sourceRoot":"","sources":["../../src/transport/WebXMessageBuffer.ts"],"names":[],"mappings":";;;AAAA;;;;;GAKG;AACH,MAAa,iBAAiB;IA6B5B;;;;OAIG;IACH,YAAoB,OAAoB;QAApB,YAAO,GAAP,OAAO,CAAa;QARhC,gBAAW,GAAW,EAAE,CAAC;QACzB,aAAQ,GAAgB,IAAI,WAAW,CAAC,OAAO,CAAC,CAAC;QAQvD,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC,CAAC,4CAA4C;QACnE,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;QACzC,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;QACtC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;QAClC,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;QACrC,IAAI,CAAC,WAAW,GAAG,iBAAiB,CAAC,qBAAqB,CAAC;IAC7D,CAAC;IAED;;;;OAIG;IACI,QAAQ;QACb,MAAM,MAAM,GAAG,IAAI,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC;QAC1C,MAAM,UAAU,GAAG,IAAI,UAAU,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC;QAC3D,OAAO,UAAU,CAAC,CAAC,CAAC,CAAC;IACvB,CAAC;IAED;;;;OAIG;IACI,SAAS;QACd,MAAM,MAAM,GAAG,IAAI,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC;QAC1C,MAAM,UAAU,GAAG,IAAI,WAAW,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC;QAC5D,OAAO,UAAU,CAAC,CAAC,CAAC,CAAC;IACvB,CAAC;IAED;;;;OAIG;IACI,QAAQ;QACb,MAAM,MAAM,GAAG,IAAI,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC;QAC1C,MAAM,UAAU,GAAG,IAAI,YAAY,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC;QAC7D,OAAO,UAAU,CAAC,CAAC,CAAC,CAAC;IACvB,CAAC;IAED;;;;;OAKG;IACI,aAAa,CAAC,MAAc;QACjC,MAAM,UAAU,GAAG,IAAI,UAAU,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;QAC1E,IAAI,CAAC,WAAW,IAAI,MAAM,CAAC;QAC3B,OAAO,UAAU,CAAC;IACpB,CAAC;IAED;;;;;OAKG;IACI,SAAS,CAAC,MAAc;QAC7B,MAAM,KAAK,GAAG,IAAI,UAAU,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;QACrE,IAAI,CAAC,WAAW,IAAI,MAAM,CAAC;QAC3B,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACrC,CAAC;IAED;;;;;OAKG;IACK,kBAAkB,CAAC,UAAkB;QAC3C,mBAAmB;QACnB,MAAM,OAAO,GAAG,IAAI,CAAC,WAAW,GAAG,UAAU,GAAG,CAAC,CAAC,CAAC,CAAC,UAAU,GAAG,CAAC,IAAI,CAAC,WAAW,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACrG,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC;QAE5C,IAAI,CAAC,WAAW,IAAI,UAAU,GAAG,OAAO,CAAC;QAEzC,OAAO,QAAQ,CAAC;IAClB,CAAC;;AAlHH,8CAmHC;AAlHC;;GAEG;AACoB,uCAAqB,GAAG,EAAE,AAAL,CAAM"}
@@ -1,17 +1,86 @@
1
1
  import { WebXMessage } from '../message';
2
2
  import { WebXTextureFactory } from '../display';
3
3
  import { WebXMessageBuffer } from './WebXMessageBuffer';
4
+ /**
5
+ * Decodes binary messages received from the WebX Engine into WebXMessage objects.
6
+ * This class handles various message types and converts them into their respective
7
+ * WebXMessage implementations.
8
+ */
4
9
  export declare class WebXMessageDecoder {
5
10
  private _textureFactory;
11
+ /**
12
+ * Creates a new instance of WebXMessageDecoder.
13
+ *
14
+ * @param _textureFactory The texture factory used to create textures from image data.
15
+ */
6
16
  constructor(_textureFactory: WebXTextureFactory);
17
+ /**
18
+ * Decodes a binary message buffer into a WebXMessage object.
19
+ *
20
+ * @param buffer The binary message buffer to decode.
21
+ * @returns A promise that resolves to the decoded WebXMessage.
22
+ */
7
23
  decode(buffer: WebXMessageBuffer): Promise<WebXMessage>;
24
+ /**
25
+ * Determines the MIME type of an image based on its type string.
26
+ *
27
+ * @param imageType The image type string (e.g., 'jpg', 'png').
28
+ * @returns The corresponding MIME type.
29
+ */
8
30
  private _determineMimeType;
31
+ /**
32
+ * Decodes a buffer into a WebXImageMessage.
33
+ *
34
+ * @param buffer The binary message buffer to decode.
35
+ * @returns A promise that resolves to a WebXImageMessage.
36
+ */
9
37
  private _createImageMessage;
38
+ /**
39
+ * Decodes a buffer into a WebXSubImagesMessage containing multiple sub-images.
40
+ *
41
+ * @param buffer The binary message buffer to decode.
42
+ * @returns A promise that resolves to a WebXSubImagesMessage.
43
+ */
10
44
  private _createSubImagesMessage;
45
+ /**
46
+ * Decodes a buffer into a WebXMouseMessage, which contains mouse position and cursor ID.
47
+ *
48
+ * @param buffer The binary message buffer to decode.
49
+ * @returns A promise that resolves to a WebXMouseMessage.
50
+ */
11
51
  private _createMouseMessage;
52
+ /**
53
+ * Decodes a buffer into a WebXWindowsMessage, which contains information about multiple windows.
54
+ *
55
+ * @param buffer The binary message buffer to decode.
56
+ * @returns A promise that resolves to a WebXWindowsMessage.
57
+ */
12
58
  private _createWindowsMessage;
59
+ /**
60
+ * Decodes a buffer into a WebXCursorImageMessage, which contains cursor image data.
61
+ *
62
+ * @param buffer The binary message buffer to decode.
63
+ * @returns A promise that resolves to a WebXCursorImageMessage.
64
+ */
13
65
  private _createCursorImageMessage;
66
+ /**
67
+ * Decodes a buffer into a WebXScreenMessage, which contains screen dimensions.
68
+ *
69
+ * @param buffer The binary message buffer to decode.
70
+ * @returns A promise that resolves to a WebXScreenMessage.
71
+ */
14
72
  private _createScreenMessage;
73
+ /**
74
+ * Creates a WebXPingMessage, which is used for pinging purposes.
75
+ *
76
+ * @returns A promise that resolves to a WebXPingMessage.
77
+ */
15
78
  private _createPingMessage;
79
+ /**
80
+ * Decodes a buffer into a WebXQualityMessage, which contains quality metrics.
81
+ *
82
+ * @param buffer The binary message buffer to decode.
83
+ * @returns A promise that resolves to a WebXQualityMessage.
84
+ */
16
85
  private _createQualityMessage;
17
86
  }
@@ -1,12 +1,37 @@
1
1
  "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
2
11
  Object.defineProperty(exports, "__esModule", { value: true });
3
12
  exports.WebXMessageDecoder = void 0;
4
13
  const message_1 = require("../message");
5
14
  const display_1 = require("../display");
15
+ /**
16
+ * Decodes binary messages received from the WebX Engine into WebXMessage objects.
17
+ * This class handles various message types and converts them into their respective
18
+ * WebXMessage implementations.
19
+ */
6
20
  class WebXMessageDecoder {
21
+ /**
22
+ * Creates a new instance of WebXMessageDecoder.
23
+ *
24
+ * @param _textureFactory The texture factory used to create textures from image data.
25
+ */
7
26
  constructor(_textureFactory) {
8
27
  this._textureFactory = _textureFactory;
9
28
  }
29
+ /**
30
+ * Decodes a binary message buffer into a WebXMessage object.
31
+ *
32
+ * @param buffer The binary message buffer to decode.
33
+ * @returns A promise that resolves to the decoded WebXMessage.
34
+ */
10
35
  decode(buffer) {
11
36
  const { messageTypeId } = buffer;
12
37
  if (messageTypeId === message_1.WebXMessageType.SCREEN) {
@@ -35,6 +60,12 @@ class WebXMessageDecoder {
35
60
  }
36
61
  console.error(`Failed to decode message with typeId ${messageTypeId}`);
37
62
  }
63
+ /**
64
+ * Determines the MIME type of an image based on its type string.
65
+ *
66
+ * @param imageType The image type string (e.g., 'jpg', 'png').
67
+ * @returns The corresponding MIME type.
68
+ */
38
69
  _determineMimeType(imageType) {
39
70
  if (imageType.substr(0, 3) === 'jpg') {
40
71
  return 'image/jpeg';
@@ -44,6 +75,12 @@ class WebXMessageDecoder {
44
75
  }
45
76
  return 'image/bmp';
46
77
  }
78
+ /**
79
+ * Decodes a buffer into a WebXImageMessage.
80
+ *
81
+ * @param buffer The binary message buffer to decode.
82
+ * @returns A promise that resolves to a WebXImageMessage.
83
+ */
47
84
  _createImageMessage(buffer) {
48
85
  return new Promise((resolve) => {
49
86
  const commandId = buffer.getUint32();
@@ -63,6 +100,12 @@ class WebXMessageDecoder {
63
100
  });
64
101
  });
65
102
  }
103
+ /**
104
+ * Decodes a buffer into a WebXSubImagesMessage containing multiple sub-images.
105
+ *
106
+ * @param buffer The binary message buffer to decode.
107
+ * @returns A promise that resolves to a WebXSubImagesMessage.
108
+ */
66
109
  _createSubImagesMessage(buffer) {
67
110
  return new Promise((resolve) => {
68
111
  const commandId = buffer.getUint32();
@@ -97,17 +140,29 @@ class WebXMessageDecoder {
97
140
  });
98
141
  });
99
142
  }
143
+ /**
144
+ * Decodes a buffer into a WebXMouseMessage, which contains mouse position and cursor ID.
145
+ *
146
+ * @param buffer The binary message buffer to decode.
147
+ * @returns A promise that resolves to a WebXMouseMessage.
148
+ */
100
149
  _createMouseMessage(buffer) {
101
- return new Promise((resolve) => {
150
+ return __awaiter(this, void 0, void 0, function* () {
102
151
  const commandId = buffer.getUint32();
103
152
  const x = buffer.getInt32();
104
153
  const y = buffer.getInt32();
105
154
  const cursorId = buffer.getUint32();
106
- resolve(new message_1.WebXMouseMessage(x, y, cursorId, commandId));
155
+ return new message_1.WebXMouseMessage(x, y, cursorId, commandId);
107
156
  });
108
157
  }
158
+ /**
159
+ * Decodes a buffer into a WebXWindowsMessage, which contains information about multiple windows.
160
+ *
161
+ * @param buffer The binary message buffer to decode.
162
+ * @returns A promise that resolves to a WebXWindowsMessage.
163
+ */
109
164
  _createWindowsMessage(buffer) {
110
- return new Promise((resolve) => {
165
+ return __awaiter(this, void 0, void 0, function* () {
111
166
  const commandId = buffer.getUint32();
112
167
  const numberOfWindows = buffer.getUint32();
113
168
  const windows = new Array();
@@ -119,11 +174,17 @@ class WebXMessageDecoder {
119
174
  const height = buffer.getInt32();
120
175
  windows.push(new display_1.WebXWindowProperties({ id: windowId, x: x, y: y, width: width, height: height }));
121
176
  }
122
- resolve(new message_1.WebXWindowsMessage(windows, commandId));
177
+ return new message_1.WebXWindowsMessage(windows, commandId);
123
178
  });
124
179
  }
180
+ /**
181
+ * Decodes a buffer into a WebXCursorImageMessage, which contains cursor image data.
182
+ *
183
+ * @param buffer The binary message buffer to decode.
184
+ * @returns A promise that resolves to a WebXCursorImageMessage.
185
+ */
125
186
  _createCursorImageMessage(buffer) {
126
- return new Promise((resolve) => {
187
+ return __awaiter(this, void 0, void 0, function* () {
127
188
  const commandId = buffer.getUint32();
128
189
  const x = buffer.getInt32();
129
190
  const y = buffer.getInt32();
@@ -132,36 +193,53 @@ class WebXMessageDecoder {
132
193
  const cursorId = buffer.getUint32();
133
194
  const imageDataSize = buffer.getUint32();
134
195
  const imageData = buffer.getUint8Array(imageDataSize);
135
- this._textureFactory.createTextureFromArray(imageData, 'image/png')
136
- .then(texture => {
137
- resolve(new message_1.WebXCursorImageMessage(x, y, xHot, yHot, cursorId, texture, commandId));
138
- })
139
- .catch(() => {
140
- console.error('Failed to get texture for cursor image');
141
- });
196
+ try {
197
+ const texture = yield this._textureFactory.createTextureFromArray(imageData, 'image/png');
198
+ return new message_1.WebXCursorImageMessage(x, y, xHot, yHot, cursorId, texture, commandId);
199
+ }
200
+ catch (error) {
201
+ console.error(`Failed to get texture for cursor image: ${error}`);
202
+ }
142
203
  });
143
204
  }
205
+ /**
206
+ * Decodes a buffer into a WebXScreenMessage, which contains screen dimensions.
207
+ *
208
+ * @param buffer The binary message buffer to decode.
209
+ * @returns A promise that resolves to a WebXScreenMessage.
210
+ */
144
211
  _createScreenMessage(buffer) {
145
- return new Promise((resolve) => {
212
+ return __awaiter(this, void 0, void 0, function* () {
146
213
  const commandId = buffer.getUint32();
147
214
  const screenWidth = buffer.getInt32();
148
215
  const screenHeight = buffer.getInt32();
149
- resolve(new message_1.WebXScreenMessage({ width: screenWidth, height: screenHeight }, commandId));
216
+ return new message_1.WebXScreenMessage({ width: screenWidth, height: screenHeight }, commandId);
150
217
  });
151
218
  }
219
+ /**
220
+ * Creates a WebXPingMessage, which is used for pinging purposes.
221
+ *
222
+ * @returns A promise that resolves to a WebXPingMessage.
223
+ */
152
224
  _createPingMessage() {
153
- return new Promise((resolve) => {
154
- resolve(new message_1.WebXPingMessage());
225
+ return __awaiter(this, void 0, void 0, function* () {
226
+ return new message_1.WebXPingMessage();
155
227
  });
156
228
  }
229
+ /**
230
+ * Decodes a buffer into a WebXQualityMessage, which contains quality metrics.
231
+ *
232
+ * @param buffer The binary message buffer to decode.
233
+ * @returns A promise that resolves to a WebXQualityMessage.
234
+ */
157
235
  _createQualityMessage(buffer) {
158
- return new Promise((resolve) => {
236
+ return __awaiter(this, void 0, void 0, function* () {
159
237
  const index = buffer.getUint32();
160
238
  const imageFPS = buffer.getFloat();
161
239
  const rgbQuality = buffer.getFloat();
162
240
  const alphaQuality = buffer.getFloat();
163
241
  const maxMbps = buffer.getFloat();
164
- resolve(new message_1.WebXQualityMessage(index, imageFPS, rgbQuality, alphaQuality, maxMbps));
242
+ return new message_1.WebXQualityMessage(index, imageFPS, rgbQuality, alphaQuality, maxMbps);
165
243
  });
166
244
  }
167
245
  }
@@ -1 +1 @@
1
- {"version":3,"file":"WebXMessageDecoder.js","sourceRoot":"","sources":["../../src/transport/WebXMessageDecoder.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"WebXMessageDecoder.js","sourceRoot":"","sources":["../../src/transport/WebXMessageDecoder.ts"],"names":[],"mappings":"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"}
@@ -1,22 +1,93 @@
1
1
  import { WebXInstruction } from '../instruction';
2
2
  import { WebXMessage } from '../message';
3
3
  import { WebXBinarySerializer } from '../transport';
4
+ /**
5
+ * Represents a communication tunnel between the WebX client and the WebX Engine.
6
+ *
7
+ * This class handles sending and receiving data, managing the connection state,
8
+ * and processing responses from the WebX Engine.
9
+ */
4
10
  export declare abstract class WebXTunnel {
5
11
  private static readonly MIN_BUFFER_LENGTH_FOR_ACK;
6
12
  protected _serializer: WebXBinarySerializer;
7
13
  private _instructionResponses;
8
14
  protected constructor();
15
+ /**
16
+ * Establishes a connection to the WebX Engine.
17
+ *
18
+ * @param data The data required to establish the connection.
19
+ * @param serializer The serializer to use for encoding/decoding messages.
20
+ * @returns A promise that resolves when the connection is successfully established.
21
+ */
9
22
  abstract connect(data: any, serializer: WebXBinarySerializer): Promise<Event>;
23
+ /**
24
+ * Closes the connection to the WebX Engine.
25
+ */
10
26
  abstract disconnect(): void;
27
+ /**
28
+ * Sends data to the WebX Engine.
29
+ *
30
+ * @param data The data to send.
31
+ */
11
32
  abstract send(data: ArrayBuffer): void;
33
+ /**
34
+ * Checks if the tunnel is currently connected.
35
+ *
36
+ * @returns True if the tunnel is connected, false otherwise.
37
+ */
12
38
  abstract isConnected(): boolean;
39
+ /**
40
+ * Sends an instruction to the WebX Engine.
41
+ *
42
+ * @param command The instruction to send.
43
+ */
13
44
  sendInstruction(command: WebXInstruction): void;
45
+ /**
46
+ * Sends a request to the WebX Engine and waits for a response.
47
+ *
48
+ * @param command The request to send.
49
+ * @param timeout The timeout in milliseconds to wait for a response.
50
+ * @returns A promise that resolves with the response from the WebX Engine.
51
+ */
14
52
  sendRequest(command: WebXInstruction, timeout?: number): Promise<WebXMessage>;
53
+ /**
54
+ * Handles incoming messages from the WebX Engine.
55
+ *
56
+ * @param data The received data.
57
+ */
15
58
  protected onMessage(data: ArrayBuffer): Promise<void>;
59
+ /**
60
+ * Handles a received message from the WebX Engine.
61
+ *
62
+ * @param message The received message.
63
+ */
16
64
  handleMessage(message: WebXMessage): void;
65
+ /**
66
+ * Handles received bytes from the WebX Engine.
67
+ *
68
+ * @param data The received data.
69
+ */
17
70
  handleReceivedBytes(data: ArrayBuffer): void;
71
+ /**
72
+ * Handles sent bytes to the WebX Engine.
73
+ *
74
+ * @param data The sent data.
75
+ */
18
76
  handleSentBytes(data: ArrayBuffer): void;
77
+ /**
78
+ * Handles the close event of the connection.
79
+ *
80
+ * @param event The close event.
81
+ */
19
82
  handleClose(event: CloseEvent): void;
83
+ /**
84
+ * Called when the connection is closed.
85
+ */
20
86
  onClosed(): void;
87
+ /**
88
+ * Handles critical messages such as PING and data acknowledgments.
89
+ *
90
+ * @param buffer The message buffer.
91
+ */
21
92
  private _handleCriticalMessages;
22
93
  }