@jsprismarine/raknet 0.1.0-rc.53 → 0.1.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 (189) hide show
  1. package/LICENSE +373 -0
  2. package/dist/ClientSocket.cjs.js +3 -0
  3. package/dist/ClientSocket.es.js +2 -0
  4. package/dist/Constants.cjs.js +23 -0
  5. package/dist/Constants.d.ts +9 -0
  6. package/dist/Constants.d.ts.map +1 -0
  7. package/dist/Constants.es.js +13 -0
  8. package/dist/Protocol-B7Z_wJaK.js +51 -0
  9. package/dist/Protocol-Bik5hgGW.cjs +53 -0
  10. package/dist/RakNet.cjs.js +83 -0
  11. package/dist/RakNet.d.ts +12 -14
  12. package/dist/RakNet.d.ts.map +1 -1
  13. package/dist/RakNet.es.js +38 -0
  14. package/dist/ServerSocket.cjs.js +160 -0
  15. package/dist/ServerSocket.d.ts +5 -5
  16. package/dist/ServerSocket.d.ts.map +1 -1
  17. package/dist/ServerSocket.es.js +152 -0
  18. package/dist/Session.cjs.js +386 -0
  19. package/dist/Session.d.ts +5 -5
  20. package/dist/Session.d.ts.map +1 -1
  21. package/dist/Session.es.js +375 -0
  22. package/dist/protocol/ACK.cjs.js +18 -0
  23. package/dist/protocol/ACK.d.ts +2 -2
  24. package/dist/protocol/ACK.d.ts.map +1 -1
  25. package/dist/protocol/ACK.es.js +14 -0
  26. package/dist/protocol/AcknowledgePacket.cjs.js +75 -0
  27. package/dist/protocol/AcknowledgePacket.d.ts +1 -1
  28. package/dist/protocol/AcknowledgePacket.d.ts.map +1 -1
  29. package/dist/protocol/AcknowledgePacket.es.js +67 -0
  30. package/dist/protocol/BitFlags.cjs.js +15 -0
  31. package/dist/protocol/BitFlags.es.js +10 -0
  32. package/dist/protocol/DisconnectNotification.cjs.js +19 -0
  33. package/dist/protocol/DisconnectNotification.d.ts +1 -1
  34. package/dist/protocol/DisconnectNotification.d.ts.map +1 -1
  35. package/dist/protocol/DisconnectNotification.es.js +15 -0
  36. package/dist/protocol/Frame.cjs.js +110 -0
  37. package/dist/protocol/Frame.d.ts +2 -2
  38. package/dist/protocol/Frame.d.ts.map +1 -1
  39. package/dist/protocol/Frame.es.js +100 -0
  40. package/dist/protocol/FrameReliability.cjs.js +19 -0
  41. package/dist/protocol/FrameReliability.es.js +14 -0
  42. package/dist/protocol/FrameSet.cjs.js +45 -0
  43. package/dist/protocol/FrameSet.d.ts +3 -3
  44. package/dist/protocol/FrameSet.d.ts.map +1 -1
  45. package/dist/protocol/FrameSet.es.js +40 -0
  46. package/dist/protocol/MessageIdentifiers.cjs.js +47 -0
  47. package/dist/protocol/MessageIdentifiers.es.js +43 -0
  48. package/dist/protocol/NACK.cjs.js +18 -0
  49. package/dist/protocol/NACK.d.ts +2 -2
  50. package/dist/protocol/NACK.d.ts.map +1 -1
  51. package/dist/protocol/NACK.es.js +14 -0
  52. package/dist/protocol/OfflineHandler.cjs.js +110 -0
  53. package/dist/protocol/OfflineHandler.d.ts +4 -4
  54. package/dist/protocol/OfflineHandler.d.ts.map +1 -1
  55. package/dist/protocol/OfflineHandler.es.js +102 -0
  56. package/dist/protocol/OfflinePacket.cjs.js +25 -0
  57. package/dist/protocol/OfflinePacket.d.ts +1 -1
  58. package/dist/protocol/OfflinePacket.d.ts.map +1 -1
  59. package/dist/protocol/OfflinePacket.es.js +21 -0
  60. package/dist/protocol/Packet.cjs.js +67 -0
  61. package/dist/protocol/Packet.d.ts +2 -2
  62. package/dist/protocol/Packet.d.ts.map +1 -1
  63. package/dist/protocol/Packet.es.js +59 -0
  64. package/dist/protocol/PacketPool.cjs.js +45 -0
  65. package/dist/protocol/PacketPool.d.ts +3 -3
  66. package/dist/protocol/PacketPool.d.ts.map +1 -1
  67. package/dist/protocol/PacketPool.es.js +41 -0
  68. package/dist/protocol/Protocol.cjs.js +57 -0
  69. package/dist/protocol/Protocol.d.ts +23 -25
  70. package/dist/protocol/Protocol.d.ts.map +1 -1
  71. package/dist/protocol/Protocol.es.js +28 -0
  72. package/dist/protocol/connection/ConnectedPing.cjs.js +24 -0
  73. package/dist/protocol/connection/ConnectedPing.d.ts +2 -2
  74. package/dist/protocol/connection/ConnectedPing.d.ts.map +1 -1
  75. package/dist/protocol/connection/ConnectedPing.es.js +20 -0
  76. package/dist/protocol/connection/ConnectedPong.cjs.js +23 -0
  77. package/dist/protocol/connection/ConnectedPong.d.ts +1 -1
  78. package/dist/protocol/connection/ConnectedPong.d.ts.map +1 -1
  79. package/dist/protocol/connection/ConnectedPong.es.js +19 -0
  80. package/dist/protocol/connection/IncompatibleProtocolVersion.cjs.js +26 -0
  81. package/dist/protocol/connection/IncompatibleProtocolVersion.d.ts +1 -1
  82. package/dist/protocol/connection/IncompatibleProtocolVersion.d.ts.map +1 -1
  83. package/dist/protocol/connection/IncompatibleProtocolVersion.es.js +22 -0
  84. package/dist/protocol/connection/NewIncomingConnection.cjs.js +37 -0
  85. package/dist/protocol/connection/NewIncomingConnection.d.ts +3 -3
  86. package/dist/protocol/connection/NewIncomingConnection.d.ts.map +1 -1
  87. package/dist/protocol/connection/NewIncomingConnection.es.js +33 -0
  88. package/dist/protocol/connection/OpenConnectionReply1.cjs.js +33 -0
  89. package/dist/protocol/connection/OpenConnectionReply1.d.ts +2 -2
  90. package/dist/protocol/connection/OpenConnectionReply1.d.ts.map +1 -1
  91. package/dist/protocol/connection/OpenConnectionReply1.es.js +29 -0
  92. package/dist/protocol/connection/OpenConnectionReply2.cjs.js +36 -0
  93. package/dist/protocol/connection/OpenConnectionReply2.d.ts +3 -3
  94. package/dist/protocol/connection/OpenConnectionReply2.d.ts.map +1 -1
  95. package/dist/protocol/connection/OpenConnectionReply2.es.js +32 -0
  96. package/dist/protocol/connection/OpenConnectionRequest1.cjs.js +31 -0
  97. package/dist/protocol/connection/OpenConnectionRequest1.d.ts +2 -2
  98. package/dist/protocol/connection/OpenConnectionRequest1.d.ts.map +1 -1
  99. package/dist/protocol/connection/OpenConnectionRequest1.es.js +27 -0
  100. package/dist/protocol/connection/OpenConnectionRequest2.cjs.js +34 -0
  101. package/dist/protocol/connection/OpenConnectionRequest2.d.ts +3 -3
  102. package/dist/protocol/connection/OpenConnectionRequest2.d.ts.map +1 -1
  103. package/dist/protocol/connection/OpenConnectionRequest2.es.js +30 -0
  104. package/dist/protocol/login/ConnectionRequest.cjs.js +29 -0
  105. package/dist/protocol/login/ConnectionRequest.d.ts +2 -2
  106. package/dist/protocol/login/ConnectionRequest.d.ts.map +1 -1
  107. package/dist/protocol/login/ConnectionRequest.es.js +25 -0
  108. package/dist/protocol/login/ConnectionRequestAccepted.cjs.js +39 -0
  109. package/dist/protocol/login/ConnectionRequestAccepted.d.ts +3 -3
  110. package/dist/protocol/login/ConnectionRequestAccepted.d.ts.map +1 -1
  111. package/dist/protocol/login/ConnectionRequestAccepted.es.js +35 -0
  112. package/dist/protocol/offline/UnconnectedPing.cjs.js +29 -0
  113. package/dist/protocol/offline/UnconnectedPing.d.ts +2 -2
  114. package/dist/protocol/offline/UnconnectedPing.d.ts.map +1 -1
  115. package/dist/protocol/offline/UnconnectedPing.es.js +25 -0
  116. package/dist/protocol/offline/UnconnectedPong.cjs.js +34 -0
  117. package/dist/protocol/offline/UnconnectedPong.d.ts +2 -2
  118. package/dist/protocol/offline/UnconnectedPong.d.ts.map +1 -1
  119. package/dist/protocol/offline/UnconnectedPong.es.js +30 -0
  120. package/dist/utils/InetAddress.cjs.js +29 -0
  121. package/dist/utils/InetAddress.es.js +25 -0
  122. package/dist/utils/ServerName.cjs.js +83 -0
  123. package/dist/utils/ServerName.es.js +79 -0
  124. package/package.json +51 -29
  125. package/dist/ClientSocket.js +0 -3
  126. package/dist/ClientSocket.js.map +0 -1
  127. package/dist/RakNet.js +0 -15
  128. package/dist/RakNet.js.map +0 -1
  129. package/dist/ServerSocket.js +0 -129
  130. package/dist/ServerSocket.js.map +0 -1
  131. package/dist/Session.js +0 -408
  132. package/dist/Session.js.map +0 -1
  133. package/dist/protocol/ACK.js +0 -8
  134. package/dist/protocol/ACK.js.map +0 -1
  135. package/dist/protocol/AcknowledgePacket.js +0 -69
  136. package/dist/protocol/AcknowledgePacket.js.map +0 -1
  137. package/dist/protocol/BitFlags.js +0 -9
  138. package/dist/protocol/BitFlags.js.map +0 -1
  139. package/dist/protocol/DisconnectNotification.js +0 -8
  140. package/dist/protocol/DisconnectNotification.js.map +0 -1
  141. package/dist/protocol/Frame.js +0 -103
  142. package/dist/protocol/Frame.js.map +0 -1
  143. package/dist/protocol/FrameReliability.js +0 -14
  144. package/dist/protocol/FrameReliability.js.map +0 -1
  145. package/dist/protocol/FrameSet.js +0 -34
  146. package/dist/protocol/FrameSet.js.map +0 -1
  147. package/dist/protocol/MessageIdentifiers.js +0 -42
  148. package/dist/protocol/MessageIdentifiers.js.map +0 -1
  149. package/dist/protocol/NACK.js +0 -8
  150. package/dist/protocol/NACK.js.map +0 -1
  151. package/dist/protocol/OfflineHandler.js +0 -103
  152. package/dist/protocol/OfflineHandler.js.map +0 -1
  153. package/dist/protocol/OfflinePacket.js +0 -16
  154. package/dist/protocol/OfflinePacket.js.map +0 -1
  155. package/dist/protocol/Packet.js +0 -59
  156. package/dist/protocol/Packet.js.map +0 -1
  157. package/dist/protocol/PacketPool.js +0 -29
  158. package/dist/protocol/PacketPool.js.map +0 -1
  159. package/dist/protocol/Protocol.js +0 -26
  160. package/dist/protocol/Protocol.js.map +0 -1
  161. package/dist/protocol/connection/ConnectedPing.js +0 -15
  162. package/dist/protocol/connection/ConnectedPing.js.map +0 -1
  163. package/dist/protocol/connection/ConnectedPong.js +0 -14
  164. package/dist/protocol/connection/ConnectedPong.js.map +0 -1
  165. package/dist/protocol/connection/IncompatibleProtocolVersion.js +0 -15
  166. package/dist/protocol/connection/IncompatibleProtocolVersion.js.map +0 -1
  167. package/dist/protocol/connection/NewIncomingConnection.js +0 -30
  168. package/dist/protocol/connection/NewIncomingConnection.js.map +0 -1
  169. package/dist/protocol/connection/OpenConnectionReply1.js +0 -22
  170. package/dist/protocol/connection/OpenConnectionReply1.js.map +0 -1
  171. package/dist/protocol/connection/OpenConnectionReply2.js +0 -25
  172. package/dist/protocol/connection/OpenConnectionReply2.js.map +0 -1
  173. package/dist/protocol/connection/OpenConnectionRequest1.js +0 -20
  174. package/dist/protocol/connection/OpenConnectionRequest1.js.map +0 -1
  175. package/dist/protocol/connection/OpenConnectionRequest2.js +0 -23
  176. package/dist/protocol/connection/OpenConnectionRequest2.js.map +0 -1
  177. package/dist/protocol/login/ConnectionRequest.js +0 -20
  178. package/dist/protocol/login/ConnectionRequest.js.map +0 -1
  179. package/dist/protocol/login/ConnectionRequestAccepted.js +0 -31
  180. package/dist/protocol/login/ConnectionRequestAccepted.js.map +0 -1
  181. package/dist/protocol/offline/UnconnectedPing.js +0 -20
  182. package/dist/protocol/offline/UnconnectedPing.js.map +0 -1
  183. package/dist/protocol/offline/UnconnectedPong.js +0 -23
  184. package/dist/protocol/offline/UnconnectedPong.js.map +0 -1
  185. package/dist/tsconfig.tsbuildinfo +0 -1
  186. package/dist/utils/InetAddress.js +0 -23
  187. package/dist/utils/InetAddress.js.map +0 -1
  188. package/dist/utils/ServerName.js +0 -77
  189. package/dist/utils/ServerName.js.map +0 -1
@@ -0,0 +1,67 @@
1
+ import BinaryStream from '@jsprismarine/jsbinaryutils';
2
+ import Packet from './Packet.es.js';
3
+ import '../utils/InetAddress.es.js';
4
+
5
+ class AcknowledgePacket extends Packet {
6
+ sequenceNumbers = [];
7
+ decodePayload() {
8
+ this.sequenceNumbers = [];
9
+ const recordCount = this.readUnsignedShort();
10
+ for (let i = 0; i < recordCount; i++) {
11
+ const notRange = this.readBoolean();
12
+ if (notRange) {
13
+ this.sequenceNumbers.push(this.readUnsignedTriadLE());
14
+ } else {
15
+ const start = this.readUnsignedTriadLE();
16
+ const end = this.readUnsignedTriadLE();
17
+ for (let i2 = start; i2 <= end; i2++) {
18
+ this.sequenceNumbers.push(i2);
19
+ }
20
+ }
21
+ }
22
+ }
23
+ encodePayload() {
24
+ const stream = new BinaryStream();
25
+ this.sequenceNumbers.sort((a, b) => a - b);
26
+ const count = this.sequenceNumbers.length;
27
+ let records = 0;
28
+ if (count > 0) {
29
+ let pointer = 1;
30
+ let start = this.sequenceNumbers[0];
31
+ let last = this.sequenceNumbers[0];
32
+ while (pointer < count) {
33
+ const current = this.sequenceNumbers[pointer++];
34
+ const diff = current - last;
35
+ if (diff === 1) {
36
+ last = current;
37
+ } else if (diff > 1) {
38
+ if (start === last) {
39
+ stream.writeBoolean(true);
40
+ stream.writeUnsignedTriadLE(start);
41
+ start = last = current;
42
+ } else {
43
+ stream.writeBoolean(false);
44
+ stream.writeUnsignedTriadLE(start);
45
+ stream.writeUnsignedTriadLE(last);
46
+ start = last = current;
47
+ }
48
+ ++records;
49
+ }
50
+ }
51
+ if (start === last) {
52
+ stream.writeBoolean(true);
53
+ stream.writeUnsignedTriadLE(start);
54
+ } else {
55
+ stream.writeBoolean(false);
56
+ stream.writeUnsignedTriadLE(start);
57
+ stream.writeUnsignedTriadLE(last);
58
+ }
59
+ ++records;
60
+ }
61
+ this.writeUnsignedShort(records);
62
+ this.write(stream.getBuffer());
63
+ }
64
+ }
65
+
66
+ export { AcknowledgePacket as default };
67
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQWNrbm93bGVkZ2VQYWNrZXQuZXMuanMiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wcm90b2NvbC9BY2tub3dsZWRnZVBhY2tldC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgQmluYXJ5U3RyZWFtIGZyb20gJ0Bqc3ByaXNtYXJpbmUvanNiaW5hcnl1dGlscyc7XG5pbXBvcnQgUGFja2V0IGZyb20gJy4vUGFja2V0JztcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgQWNrbm93bGVkZ2VQYWNrZXQgZXh0ZW5kcyBQYWNrZXQge1xuICAgIHB1YmxpYyBzZXF1ZW5jZU51bWJlcnM6IG51bWJlcltdID0gW107XG5cbiAgICBwdWJsaWMgZGVjb2RlUGF5bG9hZCgpOiB2b2lkIHtcbiAgICAgICAgLy8gQ2xlYXIgb2xkIGNhY2hlZCBkZWNvZGVkIHBhY2tldHNcbiAgICAgICAgdGhpcy5zZXF1ZW5jZU51bWJlcnMgPSBbXTtcblxuICAgICAgICBjb25zdCByZWNvcmRDb3VudCA9IHRoaXMucmVhZFVuc2lnbmVkU2hvcnQoKTtcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCByZWNvcmRDb3VudDsgaSsrKSB7XG4gICAgICAgICAgICBjb25zdCBub3RSYW5nZSA9IHRoaXMucmVhZEJvb2xlYW4oKTtcblxuICAgICAgICAgICAgaWYgKG5vdFJhbmdlKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5zZXF1ZW5jZU51bWJlcnMucHVzaCh0aGlzLnJlYWRVbnNpZ25lZFRyaWFkTEUoKSk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGNvbnN0IHN0YXJ0ID0gdGhpcy5yZWFkVW5zaWduZWRUcmlhZExFKCk7XG4gICAgICAgICAgICAgICAgY29uc3QgZW5kID0gdGhpcy5yZWFkVW5zaWduZWRUcmlhZExFKCk7XG5cbiAgICAgICAgICAgICAgICBmb3IgKGxldCBpID0gc3RhcnQ7IGkgPD0gZW5kOyBpKyspIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zZXF1ZW5jZU51bWJlcnMucHVzaChpKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgZW5jb2RlUGF5bG9hZCgpOiB2b2lkIHtcbiAgICAgICAgY29uc3Qgc3RyZWFtID0gbmV3IEJpbmFyeVN0cmVhbSgpO1xuICAgICAgICB0aGlzLnNlcXVlbmNlTnVtYmVycy5zb3J0KChhLCBiKSA9PiBhIC0gYik7XG4gICAgICAgIGNvbnN0IGNvdW50ID0gdGhpcy5zZXF1ZW5jZU51bWJlcnMubGVuZ3RoO1xuICAgICAgICBsZXQgcmVjb3JkcyA9IDA7XG5cbiAgICAgICAgaWYgKGNvdW50ID4gMCkge1xuICAgICAgICAgICAgbGV0IHBvaW50ZXIgPSAxO1xuICAgICAgICAgICAgbGV0IHN0YXJ0ID0gdGhpcy5zZXF1ZW5jZU51bWJlcnNbMF0hO1xuICAgICAgICAgICAgbGV0IGxhc3QgPSB0aGlzLnNlcXVlbmNlTnVtYmVyc1swXSE7XG5cbiAgICAgICAgICAgIHdoaWxlIChwb2ludGVyIDwgY291bnQpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBjdXJyZW50ID0gdGhpcy5zZXF1ZW5jZU51bWJlcnNbcG9pbnRlcisrXSE7XG4gICAgICAgICAgICAgICAgY29uc3QgZGlmZiA9IGN1cnJlbnQgLSBsYXN0O1xuICAgICAgICAgICAgICAgIGlmIChkaWZmID09PSAxKSB7XG4gICAgICAgICAgICAgICAgICAgIGxhc3QgPSBjdXJyZW50O1xuICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoZGlmZiA+IDEpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHN0YXJ0ID09PSBsYXN0KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBzdHJlYW0ud3JpdGVCb29sZWFuKHRydWUpOyAvLyBzaW5nbGU/XG4gICAgICAgICAgICAgICAgICAgICAgICBzdHJlYW0ud3JpdGVVbnNpZ25lZFRyaWFkTEUoc3RhcnQpO1xuICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnQgPSBsYXN0ID0gY3VycmVudDtcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0cmVhbS53cml0ZUJvb2xlYW4oZmFsc2UpOyAvLyBzaW5nbGU/XG4gICAgICAgICAgICAgICAgICAgICAgICBzdHJlYW0ud3JpdGVVbnNpZ25lZFRyaWFkTEUoc3RhcnQpO1xuICAgICAgICAgICAgICAgICAgICAgICAgc3RyZWFtLndyaXRlVW5zaWduZWRUcmlhZExFKGxhc3QpO1xuICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnQgPSBsYXN0ID0gY3VycmVudDtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICArK3JlY29yZHM7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAvLyBsYXN0IGl0ZXJhdGlvblxuICAgICAgICAgICAgaWYgKHN0YXJ0ID09PSBsYXN0KSB7XG4gICAgICAgICAgICAgICAgc3RyZWFtLndyaXRlQm9vbGVhbih0cnVlKTsgLy8gc2luZ2xlP1xuICAgICAgICAgICAgICAgIHN0cmVhbS53cml0ZVVuc2lnbmVkVHJpYWRMRShzdGFydCk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHN0cmVhbS53cml0ZUJvb2xlYW4oZmFsc2UpOyAvLyBzaW5nbGU/XG4gICAgICAgICAgICAgICAgc3RyZWFtLndyaXRlVW5zaWduZWRUcmlhZExFKHN0YXJ0KTtcbiAgICAgICAgICAgICAgICBzdHJlYW0ud3JpdGVVbnNpZ25lZFRyaWFkTEUobGFzdCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICArK3JlY29yZHM7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLndyaXRlVW5zaWduZWRTaG9ydChyZWNvcmRzKTtcbiAgICAgICAgdGhpcy53cml0ZShzdHJlYW0uZ2V0QnVmZmVyKCkpO1xuICAgIH1cbn1cbiJd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
@@ -0,0 +1,15 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: 'Module' } });
4
+
5
+ var BitFlags = /* @__PURE__ */ ((BitFlags2) => {
6
+ BitFlags2[BitFlags2["VALID"] = 128] = "VALID";
7
+ BitFlags2[BitFlags2["ACK"] = 64] = "ACK";
8
+ BitFlags2[BitFlags2["NACK"] = 32] = "NACK";
9
+ BitFlags2[BitFlags2["SPLIT"] = 16] = "SPLIT";
10
+ return BitFlags2;
11
+ })(BitFlags || {});
12
+
13
+ exports.BitFlags = BitFlags;
14
+ exports.default = BitFlags;
15
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQml0RmxhZ3MuY2pzLmpzIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcHJvdG9jb2wvQml0RmxhZ3MudHMiXSwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGVudW0gQml0RmxhZ3Mge1xuICAgIFZBTElEID0gMHg4MCxcbiAgICBBQ0sgPSAweDQwLFxuICAgIE5BQ0sgPSAweDIwLFxuICAgIFNQTElUID0gMHgxMFxufVxuZXhwb3J0IGRlZmF1bHQgQml0RmxhZ3M7XG4iXSwibmFtZXMiOlsiQml0RmxhZ3MiXSwibWFwcGluZ3MiOiI7Ozs7QUFBWSxJQUFBLFFBQUEscUJBQUFBLFNBQUwsS0FBQTtBQUNILEVBQUFBLFNBQUFBLENBQUFBLFNBQUFBLENBQUEsV0FBUSxHQUFSLENBQUEsR0FBQSxPQUFBLENBQUE7QUFDQSxFQUFBQSxTQUFBQSxDQUFBQSxTQUFBQSxDQUFBLFNBQU0sRUFBTixDQUFBLEdBQUEsS0FBQSxDQUFBO0FBQ0EsRUFBQUEsU0FBQUEsQ0FBQUEsU0FBQUEsQ0FBQSxVQUFPLEVBQVAsQ0FBQSxHQUFBLE1BQUEsQ0FBQTtBQUNBLEVBQUFBLFNBQUFBLENBQUFBLFNBQUFBLENBQUEsV0FBUSxFQUFSLENBQUEsR0FBQSxPQUFBLENBQUE7QUFKUSxFQUFBQSxPQUFBQSxTQUFBQSxDQUFBQTtBQUFBLENBQUEsRUFBQSxRQUFBLElBQUEsRUFBQTs7Ozs7In0=
@@ -0,0 +1,10 @@
1
+ var BitFlags = /* @__PURE__ */ ((BitFlags2) => {
2
+ BitFlags2[BitFlags2["VALID"] = 128] = "VALID";
3
+ BitFlags2[BitFlags2["ACK"] = 64] = "ACK";
4
+ BitFlags2[BitFlags2["NACK"] = 32] = "NACK";
5
+ BitFlags2[BitFlags2["SPLIT"] = 16] = "SPLIT";
6
+ return BitFlags2;
7
+ })(BitFlags || {});
8
+
9
+ export { BitFlags, BitFlags as default };
10
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQml0RmxhZ3MuZXMuanMiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wcm90b2NvbC9CaXRGbGFncy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZW51bSBCaXRGbGFncyB7XG4gICAgVkFMSUQgPSAweDgwLFxuICAgIEFDSyA9IDB4NDAsXG4gICAgTkFDSyA9IDB4MjAsXG4gICAgU1BMSVQgPSAweDEwXG59XG5leHBvcnQgZGVmYXVsdCBCaXRGbGFncztcbiJdLCJuYW1lcyI6WyJCaXRGbGFncyJdLCJtYXBwaW5ncyI6IkFBQVksSUFBQSxRQUFBLHFCQUFBQSxTQUFMLEtBQUE7QUFDSCxFQUFBQSxTQUFBQSxDQUFBQSxTQUFBQSxDQUFBLFdBQVEsR0FBUixDQUFBLEdBQUEsT0FBQSxDQUFBO0FBQ0EsRUFBQUEsU0FBQUEsQ0FBQUEsU0FBQUEsQ0FBQSxTQUFNLEVBQU4sQ0FBQSxHQUFBLEtBQUEsQ0FBQTtBQUNBLEVBQUFBLFNBQUFBLENBQUFBLFNBQUFBLENBQUEsVUFBTyxFQUFQLENBQUEsR0FBQSxNQUFBLENBQUE7QUFDQSxFQUFBQSxTQUFBQSxDQUFBQSxTQUFBQSxDQUFBLFdBQVEsRUFBUixDQUFBLEdBQUEsT0FBQSxDQUFBO0FBSlEsRUFBQUEsT0FBQUEsU0FBQUEsQ0FBQUE7QUFBQSxDQUFBLEVBQUEsUUFBQSxJQUFBLEVBQUE7Ozs7In0=
@@ -0,0 +1,19 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: 'Module' } });
4
+
5
+ const protocol_MessageIdentifiers = require('./MessageIdentifiers.cjs.js');
6
+ const protocol_OfflinePacket = require('./OfflinePacket.cjs.js');
7
+ require('./Packet.cjs.js');
8
+ require('@jsprismarine/jsbinaryutils');
9
+ require('../utils/InetAddress.cjs.js');
10
+ require('../Constants.cjs.js');
11
+
12
+ class DisconnectNotification extends protocol_OfflinePacket.default {
13
+ constructor() {
14
+ super(protocol_MessageIdentifiers.MessageIdentifiers.DISCONNECTION_NOTIFICATION);
15
+ }
16
+ }
17
+
18
+ exports.default = DisconnectNotification;
19
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRGlzY29ubmVjdE5vdGlmaWNhdGlvbi5janMuanMiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wcm90b2NvbC9EaXNjb25uZWN0Tm90aWZpY2F0aW9uLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE1lc3NhZ2VJZGVudGlmaWVycyB9IGZyb20gJy4vTWVzc2FnZUlkZW50aWZpZXJzJztcbmltcG9ydCBPZmZsaW5lUGFja2V0IGZyb20gJy4vT2ZmbGluZVBhY2tldCc7XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIERpc2Nvbm5lY3ROb3RpZmljYXRpb24gZXh0ZW5kcyBPZmZsaW5lUGFja2V0IHtcbiAgICBwdWJsaWMgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIHN1cGVyKE1lc3NhZ2VJZGVudGlmaWVycy5ESVNDT05ORUNUSU9OX05PVElGSUNBVElPTik7XG4gICAgfVxufVxuIl0sIm5hbWVzIjpbIk9mZmxpbmVQYWNrZXQiLCJNZXNzYWdlSWRlbnRpZmllcnMiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O0FBR0EsTUFBcUIsK0JBQStCQSw4QkFBYyxDQUFBO0FBQUEsRUFDdkQsV0FBYyxHQUFBO0FBQ2pCLElBQUEsS0FBQSxDQUFNQywrQ0FBbUIsMEJBQTBCLENBQUEsQ0FBQTtBQUFBLEdBQ3ZEO0FBQ0o7Ozs7In0=
@@ -1,4 +1,4 @@
1
- import OfflinePacket from './OfflinePacket.js';
1
+ import OfflinePacket from './OfflinePacket';
2
2
  export default class DisconnectNotification extends OfflinePacket {
3
3
  constructor();
4
4
  }
@@ -1 +1 @@
1
- {"version":3,"file":"DisconnectNotification.d.ts","sourceRoot":"","sources":["../../src/protocol/DisconnectNotification.ts"],"names":[],"mappings":"AACA,OAAO,aAAa,MAAM,oBAAoB,CAAC;AAE/C,MAAM,CAAC,OAAO,OAAO,sBAAuB,SAAQ,aAAa;;CAIhE"}
1
+ {"version":3,"file":"DisconnectNotification.d.ts","sourceRoot":"","sources":["../../src/protocol/DisconnectNotification.ts"],"names":[],"mappings":"AACA,OAAO,aAAa,MAAM,iBAAiB,CAAC;AAE5C,MAAM,CAAC,OAAO,OAAO,sBAAuB,SAAQ,aAAa;;CAIhE"}
@@ -0,0 +1,15 @@
1
+ import { MessageIdentifiers } from './MessageIdentifiers.es.js';
2
+ import OfflinePacket from './OfflinePacket.es.js';
3
+ import './Packet.es.js';
4
+ import '@jsprismarine/jsbinaryutils';
5
+ import '../utils/InetAddress.es.js';
6
+ import '../Constants.es.js';
7
+
8
+ class DisconnectNotification extends OfflinePacket {
9
+ constructor() {
10
+ super(MessageIdentifiers.DISCONNECTION_NOTIFICATION);
11
+ }
12
+ }
13
+
14
+ export { DisconnectNotification as default };
15
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRGlzY29ubmVjdE5vdGlmaWNhdGlvbi5lcy5qcyIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3Byb3RvY29sL0Rpc2Nvbm5lY3ROb3RpZmljYXRpb24udHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTWVzc2FnZUlkZW50aWZpZXJzIH0gZnJvbSAnLi9NZXNzYWdlSWRlbnRpZmllcnMnO1xuaW1wb3J0IE9mZmxpbmVQYWNrZXQgZnJvbSAnLi9PZmZsaW5lUGFja2V0JztcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgRGlzY29ubmVjdE5vdGlmaWNhdGlvbiBleHRlbmRzIE9mZmxpbmVQYWNrZXQge1xuICAgIHB1YmxpYyBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgc3VwZXIoTWVzc2FnZUlkZW50aWZpZXJzLkRJU0NPTk5FQ1RJT05fTk9USUZJQ0FUSU9OKTtcbiAgICB9XG59XG4iXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUdBLE1BQXFCLCtCQUErQixhQUFjLENBQUE7QUFBQSxFQUN2RCxXQUFjLEdBQUE7QUFDakIsSUFBQSxLQUFBLENBQU0sbUJBQW1CLDBCQUEwQixDQUFBLENBQUE7QUFBQSxHQUN2RDtBQUNKOzs7OyJ9
@@ -0,0 +1,110 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: 'Module' } });
4
+
5
+ const BinaryStream = require('@jsprismarine/jsbinaryutils');
6
+ const protocol_BitFlags = require('./BitFlags.cjs.js');
7
+ const protocol_FrameReliability = require('./FrameReliability.cjs.js');
8
+ const assert = require('assert');
9
+
10
+ const _interopDefault = e => e && e.__esModule ? e : { default: e };
11
+
12
+ const BinaryStream__default = /*#__PURE__*/_interopDefault(BinaryStream);
13
+ const assert__default = /*#__PURE__*/_interopDefault(assert);
14
+
15
+ const MAX_FRAME_BYTE_LENGTH = 23;
16
+ class Frame {
17
+ reliability = protocol_FrameReliability.FrameReliability.UNRELIABLE;
18
+ reliableIndex = null;
19
+ sequenceIndex = null;
20
+ orderIndex = null;
21
+ orderChannel;
22
+ fragmentSize = 0;
23
+ fragmentId;
24
+ fragmentIndex;
25
+ content;
26
+ fromBinary(stream) {
27
+ const header = stream.readByte();
28
+ this.reliability = (header & 224) >> 5;
29
+ const length = Math.ceil(stream.readShort() / 8);
30
+ if (this.isReliable()) {
31
+ this.reliableIndex = stream.readTriadLE();
32
+ }
33
+ if (this.isSequenced()) {
34
+ this.sequenceIndex = stream.readTriadLE();
35
+ }
36
+ if (this.isOrdered()) {
37
+ this.orderIndex = stream.readTriadLE();
38
+ this.orderChannel = stream.readByte();
39
+ }
40
+ if ((header & protocol_BitFlags.BitFlags.SPLIT) > 0) {
41
+ this.fragmentSize = stream.readInt();
42
+ this.fragmentId = stream.readShort();
43
+ this.fragmentIndex = stream.readInt();
44
+ }
45
+ this.content = stream.read(length);
46
+ return this;
47
+ }
48
+ toBinary() {
49
+ const stream = new BinaryStream__default.default();
50
+ const fragmented = this.isFragmented();
51
+ stream.writeByte(this.reliability << 5 | (fragmented ? protocol_BitFlags.BitFlags.SPLIT : 0));
52
+ stream.writeUnsignedShort(this.content.byteLength << 3);
53
+ if (this.isReliable()) {
54
+ assert__default.default(typeof this.reliableIndex === "number", "Invalid ReliableIndex for reliable Frame");
55
+ stream.writeUnsignedTriadLE(this.reliableIndex);
56
+ }
57
+ if (this.isSequenced()) {
58
+ assert__default.default(typeof this.sequenceIndex === "number", "Invalid SequenceIndex for sequenced Frame");
59
+ stream.writeUnsignedTriadLE(this.sequenceIndex);
60
+ }
61
+ if (this.isOrdered()) {
62
+ assert__default.default(typeof this.orderIndex === "number", "Invalid OrderIndex for ordered Frame");
63
+ stream.writeUnsignedTriadLE(this.orderIndex);
64
+ assert__default.default(typeof this.orderChannel === "number", "Invalid OrderChannel for ordered FrameSet");
65
+ stream.writeByte(this.orderChannel);
66
+ }
67
+ if (fragmented) {
68
+ stream.writeUnsignedInt(this.fragmentSize);
69
+ stream.writeUnsignedShort(this.fragmentId);
70
+ stream.writeUnsignedInt(this.fragmentIndex);
71
+ }
72
+ stream.write(this.content);
73
+ return stream;
74
+ }
75
+ getByteLength() {
76
+ return 3 + this.content.byteLength + (this.isReliable() ? 3 : 0) + (this.isSequenced() ? 3 : 0) + (this.isOrdered() ? 4 : 0) + (this.isFragmented() ? 10 : 0);
77
+ }
78
+ isReliable() {
79
+ return [
80
+ protocol_FrameReliability.FrameReliability.RELIABLE,
81
+ protocol_FrameReliability.FrameReliability.RELIABLE_ORDERED,
82
+ protocol_FrameReliability.FrameReliability.RELIABLE_SEQUENCED,
83
+ protocol_FrameReliability.FrameReliability.RELIABLE_WITH_ACK_RECEIPT,
84
+ protocol_FrameReliability.FrameReliability.RELIABLE_ORDERED_WITH_ACK_RECEIPT
85
+ ].includes(this.reliability);
86
+ }
87
+ isSequenced() {
88
+ return [protocol_FrameReliability.FrameReliability.RELIABLE_SEQUENCED, protocol_FrameReliability.FrameReliability.UNRELIABLE_SEQUENCED].includes(this.reliability);
89
+ }
90
+ isOrdered() {
91
+ return [
92
+ protocol_FrameReliability.FrameReliability.UNRELIABLE_SEQUENCED,
93
+ protocol_FrameReliability.FrameReliability.RELIABLE_ORDERED,
94
+ protocol_FrameReliability.FrameReliability.RELIABLE_SEQUENCED,
95
+ protocol_FrameReliability.FrameReliability.RELIABLE_ORDERED_WITH_ACK_RECEIPT
96
+ ].includes(this.reliability);
97
+ }
98
+ isOrderedExclusive() {
99
+ return [protocol_FrameReliability.FrameReliability.RELIABLE_ORDERED, protocol_FrameReliability.FrameReliability.RELIABLE_ORDERED_WITH_ACK_RECEIPT].includes(
100
+ this.reliability
101
+ );
102
+ }
103
+ isFragmented() {
104
+ return this.fragmentSize > 0;
105
+ }
106
+ }
107
+
108
+ exports.MAX_FRAME_BYTE_LENGTH = MAX_FRAME_BYTE_LENGTH;
109
+ exports.default = Frame;
110
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRnJhbWUuY2pzLmpzIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcHJvdG9jb2wvRnJhbWUudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IEJpbmFyeVN0cmVhbSBmcm9tICdAanNwcmlzbWFyaW5lL2pzYmluYXJ5dXRpbHMnO1xuaW1wb3J0IEJpdEZsYWdzIGZyb20gJy4vQml0RmxhZ3MnO1xuaW1wb3J0IEZyYW1lUmVsaWFiaWxpdHkgZnJvbSAnLi9GcmFtZVJlbGlhYmlsaXR5JztcbmltcG9ydCBhc3NlcnQgZnJvbSAnYXNzZXJ0JztcblxuLy8gaHR0cHM6Ly9naXRodWIuY29tL2ZhY2Vib29rYXJjaGl2ZS9SYWtOZXQvYmxvYi8xYTE2OTg5NWE5MDBjOWZjNDg0MWM1NTZlMTY1MTQxODJiNzVmYWY4L1NvdXJjZS9SZWxpYWJpbGl0eUxheWVyLmNwcCNMMTMzXG4vLyBJdCdzIHRoZSBtYXhpbXVtIG51bWJlciBvZiBieXRlcyBhIGZyYW1lc2V0IGNhbiB0YWtlLiAoc3BsaXR0ZWQgcmVsaWFibGUgc2VxdWVuY2VkKS5cbmV4cG9ydCBjb25zdCBNQVhfRlJBTUVfQllURV9MRU5HVEggPSAyMztcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgRnJhbWUge1xuICAgIHB1YmxpYyByZWxpYWJpbGl0eSA9IEZyYW1lUmVsaWFiaWxpdHkuVU5SRUxJQUJMRTtcblxuICAgIHB1YmxpYyByZWxpYWJsZUluZGV4OiBudW1iZXIgfCBudWxsID0gbnVsbDtcblxuICAgIHB1YmxpYyBzZXF1ZW5jZUluZGV4OiBudW1iZXIgfCBudWxsID0gbnVsbDtcblxuICAgIHB1YmxpYyBvcmRlckluZGV4OiBudW1iZXIgfCBudWxsID0gbnVsbDtcbiAgICBwdWJsaWMgb3JkZXJDaGFubmVsITogTm9uTnVsbGFibGU8bnVtYmVyPjtcblxuICAgIHB1YmxpYyBmcmFnbWVudFNpemUgPSAwO1xuICAgIHB1YmxpYyBmcmFnbWVudElkITogbnVtYmVyO1xuICAgIHB1YmxpYyBmcmFnbWVudEluZGV4ITogbnVtYmVyO1xuXG4gICAgcHVibGljIGNvbnRlbnQhOiBCdWZmZXI7XG5cbiAgICBwdWJsaWMgZnJvbUJpbmFyeShzdHJlYW06IEJpbmFyeVN0cmVhbSk6IEZyYW1lIHtcbiAgICAgICAgY29uc3QgaGVhZGVyID0gc3RyZWFtLnJlYWRCeXRlKCk7XG4gICAgICAgIHRoaXMucmVsaWFiaWxpdHkgPSAoaGVhZGVyICYgMHhlMCkgPj4gNTtcblxuICAgICAgICAvLyBMZW5ndGggZnJvbSBiaXRzIHRvIGJ5dGVzXG4gICAgICAgIGNvbnN0IGxlbmd0aCA9IE1hdGguY2VpbChzdHJlYW0ucmVhZFNob3J0KCkgLyA4KTtcblxuICAgICAgICBpZiAodGhpcy5pc1JlbGlhYmxlKCkpIHtcbiAgICAgICAgICAgIHRoaXMucmVsaWFibGVJbmRleCA9IHN0cmVhbS5yZWFkVHJpYWRMRSgpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMuaXNTZXF1ZW5jZWQoKSkge1xuICAgICAgICAgICAgdGhpcy5zZXF1ZW5jZUluZGV4ID0gc3RyZWFtLnJlYWRUcmlhZExFKCk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5pc09yZGVyZWQoKSkge1xuICAgICAgICAgICAgdGhpcy5vcmRlckluZGV4ID0gc3RyZWFtLnJlYWRUcmlhZExFKCk7XG4gICAgICAgICAgICB0aGlzLm9yZGVyQ2hhbm5lbCA9IHN0cmVhbS5yZWFkQnl0ZSgpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKChoZWFkZXIgJiBCaXRGbGFncy5TUExJVCkgPiAwKSB7XG4gICAgICAgICAgICB0aGlzLmZyYWdtZW50U2l6ZSA9IHN0cmVhbS5yZWFkSW50KCk7XG4gICAgICAgICAgICB0aGlzLmZyYWdtZW50SWQgPSBzdHJlYW0ucmVhZFNob3J0KCk7XG4gICAgICAgICAgICB0aGlzLmZyYWdtZW50SW5kZXggPSBzdHJlYW0ucmVhZEludCgpO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5jb250ZW50ID0gc3RyZWFtLnJlYWQobGVuZ3RoKTtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgcHVibGljIHRvQmluYXJ5KCk6IEJpbmFyeVN0cmVhbSB7XG4gICAgICAgIGNvbnN0IHN0cmVhbSA9IG5ldyBCaW5hcnlTdHJlYW0oKTtcbiAgICAgICAgY29uc3QgZnJhZ21lbnRlZCA9IHRoaXMuaXNGcmFnbWVudGVkKCk7XG5cbiAgICAgICAgc3RyZWFtLndyaXRlQnl0ZSgodGhpcy5yZWxpYWJpbGl0eSA8PCA1KSB8IChmcmFnbWVudGVkID8gQml0RmxhZ3MuU1BMSVQgOiAwKSk7XG4gICAgICAgIHN0cmVhbS53cml0ZVVuc2lnbmVkU2hvcnQodGhpcy5jb250ZW50LmJ5dGVMZW5ndGggPDwgMyk7XG5cbiAgICAgICAgaWYgKHRoaXMuaXNSZWxpYWJsZSgpKSB7XG4gICAgICAgICAgICBhc3NlcnQodHlwZW9mIHRoaXMucmVsaWFibGVJbmRleCA9PT0gJ251bWJlcicsICdJbnZhbGlkIFJlbGlhYmxlSW5kZXggZm9yIHJlbGlhYmxlIEZyYW1lJyk7XG4gICAgICAgICAgICBzdHJlYW0ud3JpdGVVbnNpZ25lZFRyaWFkTEUodGhpcy5yZWxpYWJsZUluZGV4KTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLmlzU2VxdWVuY2VkKCkpIHtcbiAgICAgICAgICAgIGFzc2VydCh0eXBlb2YgdGhpcy5zZXF1ZW5jZUluZGV4ID09PSAnbnVtYmVyJywgJ0ludmFsaWQgU2VxdWVuY2VJbmRleCBmb3Igc2VxdWVuY2VkIEZyYW1lJyk7XG4gICAgICAgICAgICBzdHJlYW0ud3JpdGVVbnNpZ25lZFRyaWFkTEUodGhpcy5zZXF1ZW5jZUluZGV4KTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLmlzT3JkZXJlZCgpKSB7XG4gICAgICAgICAgICBhc3NlcnQodHlwZW9mIHRoaXMub3JkZXJJbmRleCA9PT0gJ251bWJlcicsICdJbnZhbGlkIE9yZGVySW5kZXggZm9yIG9yZGVyZWQgRnJhbWUnKTtcbiAgICAgICAgICAgIHN0cmVhbS53cml0ZVVuc2lnbmVkVHJpYWRMRSh0aGlzLm9yZGVySW5kZXgpO1xuICAgICAgICAgICAgYXNzZXJ0KHR5cGVvZiB0aGlzLm9yZGVyQ2hhbm5lbCA9PT0gJ251bWJlcicsICdJbnZhbGlkIE9yZGVyQ2hhbm5lbCBmb3Igb3JkZXJlZCBGcmFtZVNldCcpO1xuICAgICAgICAgICAgc3RyZWFtLndyaXRlQnl0ZSh0aGlzLm9yZGVyQ2hhbm5lbCk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoZnJhZ21lbnRlZCkge1xuICAgICAgICAgICAgc3RyZWFtLndyaXRlVW5zaWduZWRJbnQodGhpcy5mcmFnbWVudFNpemUpO1xuICAgICAgICAgICAgc3RyZWFtLndyaXRlVW5zaWduZWRTaG9ydCh0aGlzLmZyYWdtZW50SWQpO1xuICAgICAgICAgICAgc3RyZWFtLndyaXRlVW5zaWduZWRJbnQodGhpcy5mcmFnbWVudEluZGV4KTtcbiAgICAgICAgfVxuXG4gICAgICAgIHN0cmVhbS53cml0ZSh0aGlzLmNvbnRlbnQpO1xuICAgICAgICByZXR1cm4gc3RyZWFtO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXRCeXRlTGVuZ3RoKCk6IG51bWJlciB7XG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAzICtcbiAgICAgICAgICAgIHRoaXMuY29udGVudC5ieXRlTGVuZ3RoICtcbiAgICAgICAgICAgICh0aGlzLmlzUmVsaWFibGUoKSA/IDMgOiAwKSArXG4gICAgICAgICAgICAodGhpcy5pc1NlcXVlbmNlZCgpID8gMyA6IDApICtcbiAgICAgICAgICAgICh0aGlzLmlzT3JkZXJlZCgpID8gNCA6IDApICtcbiAgICAgICAgICAgICh0aGlzLmlzRnJhZ21lbnRlZCgpID8gMTAgOiAwKVxuICAgICAgICApO1xuICAgIH1cblxuICAgIHB1YmxpYyBpc1JlbGlhYmxlKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gW1xuICAgICAgICAgICAgRnJhbWVSZWxpYWJpbGl0eS5SRUxJQUJMRSxcbiAgICAgICAgICAgIEZyYW1lUmVsaWFiaWxpdHkuUkVMSUFCTEVfT1JERVJFRCxcbiAgICAgICAgICAgIEZyYW1lUmVsaWFiaWxpdHkuUkVMSUFCTEVfU0VRVUVOQ0VELFxuICAgICAgICAgICAgRnJhbWVSZWxpYWJpbGl0eS5SRUxJQUJMRV9XSVRIX0FDS19SRUNFSVBULFxuICAgICAgICAgICAgRnJhbWVSZWxpYWJpbGl0eS5SRUxJQUJMRV9PUkRFUkVEX1dJVEhfQUNLX1JFQ0VJUFRcbiAgICAgICAgXS5pbmNsdWRlcyh0aGlzLnJlbGlhYmlsaXR5KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgaXNTZXF1ZW5jZWQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiBbRnJhbWVSZWxpYWJpbGl0eS5SRUxJQUJMRV9TRVFVRU5DRUQsIEZyYW1lUmVsaWFiaWxpdHkuVU5SRUxJQUJMRV9TRVFVRU5DRURdLmluY2x1ZGVzKHRoaXMucmVsaWFiaWxpdHkpO1xuICAgIH1cblxuICAgIHB1YmxpYyBpc09yZGVyZWQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiBbXG4gICAgICAgICAgICBGcmFtZVJlbGlhYmlsaXR5LlVOUkVMSUFCTEVfU0VRVUVOQ0VELFxuICAgICAgICAgICAgRnJhbWVSZWxpYWJpbGl0eS5SRUxJQUJMRV9PUkRFUkVELFxuICAgICAgICAgICAgRnJhbWVSZWxpYWJpbGl0eS5SRUxJQUJMRV9TRVFVRU5DRUQsXG4gICAgICAgICAgICBGcmFtZVJlbGlhYmlsaXR5LlJFTElBQkxFX09SREVSRURfV0lUSF9BQ0tfUkVDRUlQVFxuICAgICAgICBdLmluY2x1ZGVzKHRoaXMucmVsaWFiaWxpdHkpO1xuICAgIH1cblxuICAgIHB1YmxpYyBpc09yZGVyZWRFeGNsdXNpdmUoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiBbRnJhbWVSZWxpYWJpbGl0eS5SRUxJQUJMRV9PUkRFUkVELCBGcmFtZVJlbGlhYmlsaXR5LlJFTElBQkxFX09SREVSRURfV0lUSF9BQ0tfUkVDRUlQVF0uaW5jbHVkZXMoXG4gICAgICAgICAgICB0aGlzLnJlbGlhYmlsaXR5XG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgcHVibGljIGlzRnJhZ21lbnRlZCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZnJhZ21lbnRTaXplID4gMDtcbiAgICB9XG59XG4iXSwibmFtZXMiOlsiRnJhbWVSZWxpYWJpbGl0eSIsIkJpdEZsYWdzIiwiQmluYXJ5U3RyZWFtIiwiYXNzZXJ0Il0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7OztBQU9PLE1BQU0scUJBQXdCLEdBQUEsR0FBQTtBQUVyQyxNQUFxQixLQUFNLENBQUE7QUFBQSxFQUNoQixjQUFjQSwwQ0FBaUIsQ0FBQSxVQUFBLENBQUE7QUFBQSxFQUUvQixhQUErQixHQUFBLElBQUEsQ0FBQTtBQUFBLEVBRS9CLGFBQStCLEdBQUEsSUFBQSxDQUFBO0FBQUEsRUFFL0IsVUFBNEIsR0FBQSxJQUFBLENBQUE7QUFBQSxFQUM1QixZQUFBLENBQUE7QUFBQSxFQUVBLFlBQWUsR0FBQSxDQUFBLENBQUE7QUFBQSxFQUNmLFVBQUEsQ0FBQTtBQUFBLEVBQ0EsYUFBQSxDQUFBO0FBQUEsRUFFQSxPQUFBLENBQUE7QUFBQSxFQUVBLFdBQVcsTUFBNkIsRUFBQTtBQUMzQyxJQUFNLE1BQUEsTUFBQSxHQUFTLE9BQU8sUUFBUyxFQUFBLENBQUE7QUFDL0IsSUFBSyxJQUFBLENBQUEsV0FBQSxHQUFBLENBQWUsU0FBUyxHQUFTLEtBQUEsQ0FBQSxDQUFBO0FBR3RDLElBQUEsTUFBTSxTQUFTLElBQUssQ0FBQSxJQUFBLENBQUssTUFBTyxDQUFBLFNBQUEsS0FBYyxDQUFDLENBQUEsQ0FBQTtBQUUvQyxJQUFJLElBQUEsSUFBQSxDQUFLLFlBQWMsRUFBQTtBQUNuQixNQUFLLElBQUEsQ0FBQSxhQUFBLEdBQWdCLE9BQU8sV0FBWSxFQUFBLENBQUE7QUFBQSxLQUM1QztBQUVBLElBQUksSUFBQSxJQUFBLENBQUssYUFBZSxFQUFBO0FBQ3BCLE1BQUssSUFBQSxDQUFB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
@@ -1,6 +1,6 @@
1
- /// <reference types="node" resolution-mode="require"/>
1
+ /// <reference types="node" />
2
2
  import BinaryStream from '@jsprismarine/jsbinaryutils';
3
- import FrameReliability from './FrameReliability.js';
3
+ import FrameReliability from './FrameReliability';
4
4
  export declare const MAX_FRAME_BYTE_LENGTH = 23;
5
5
  export default class Frame {
6
6
  reliability: FrameReliability;
@@ -1 +1 @@
1
- {"version":3,"file":"Frame.d.ts","sourceRoot":"","sources":["../../src/protocol/Frame.ts"],"names":[],"mappings":";AAAA,OAAO,YAAY,MAAM,6BAA6B,CAAC;AAEvD,OAAO,gBAAgB,MAAM,uBAAuB,CAAC;AAKrD,eAAO,MAAM,qBAAqB,KAAK,CAAC;AAExC,MAAM,CAAC,OAAO,OAAO,KAAK;IACf,WAAW,mBAA+B;IAE1C,aAAa,EAAE,MAAM,GAAG,IAAI,CAAQ;IAEpC,aAAa,EAAE,MAAM,GAAG,IAAI,CAAQ;IAEpC,UAAU,EAAE,MAAM,GAAG,IAAI,CAAQ;IACjC,YAAY,EAAG,WAAW,CAAC,MAAM,CAAC,CAAC;IAEnC,YAAY,SAAK;IACjB,UAAU,EAAG,MAAM,CAAC;IACpB,aAAa,EAAG,MAAM,CAAC;IAEvB,OAAO,EAAG,MAAM,CAAC;IAEjB,UAAU,CAAC,MAAM,EAAE,YAAY,GAAG,KAAK;IA8BvC,QAAQ,IAAI,YAAY;IAkCxB,aAAa,IAAI,MAAM;IAWvB,UAAU,IAAI,OAAO;IAUrB,WAAW,IAAI,OAAO;IAItB,SAAS,IAAI,OAAO;IASpB,kBAAkB,IAAI,OAAO;IAM7B,YAAY,IAAI,OAAO;CAGjC"}
1
+ {"version":3,"file":"Frame.d.ts","sourceRoot":"","sources":["../../src/protocol/Frame.ts"],"names":[],"mappings":";AAAA,OAAO,YAAY,MAAM,6BAA6B,CAAC;AAEvD,OAAO,gBAAgB,MAAM,oBAAoB,CAAC;AAKlD,eAAO,MAAM,qBAAqB,KAAK,CAAC;AAExC,MAAM,CAAC,OAAO,OAAO,KAAK;IACf,WAAW,mBAA+B;IAE1C,aAAa,EAAE,MAAM,GAAG,IAAI,CAAQ;IAEpC,aAAa,EAAE,MAAM,GAAG,IAAI,CAAQ;IAEpC,UAAU,EAAE,MAAM,GAAG,IAAI,CAAQ;IACjC,YAAY,EAAG,WAAW,CAAC,MAAM,CAAC,CAAC;IAEnC,YAAY,SAAK;IACjB,UAAU,EAAG,MAAM,CAAC;IACpB,aAAa,EAAG,MAAM,CAAC;IAEvB,OAAO,EAAG,MAAM,CAAC;IAEjB,UAAU,CAAC,MAAM,EAAE,YAAY,GAAG,KAAK;IA8BvC,QAAQ,IAAI,YAAY;IAkCxB,aAAa,IAAI,MAAM;IAWvB,UAAU,IAAI,OAAO;IAUrB,WAAW,IAAI,OAAO;IAItB,SAAS,IAAI,OAAO;IASpB,kBAAkB,IAAI,OAAO;IAM7B,YAAY,IAAI,OAAO;CAGjC"}
@@ -0,0 +1,100 @@
1
+ import BinaryStream from '@jsprismarine/jsbinaryutils';
2
+ import { BitFlags } from './BitFlags.es.js';
3
+ import { FrameReliability } from './FrameReliability.es.js';
4
+ import assert from 'assert';
5
+
6
+ const MAX_FRAME_BYTE_LENGTH = 23;
7
+ class Frame {
8
+ reliability = FrameReliability.UNRELIABLE;
9
+ reliableIndex = null;
10
+ sequenceIndex = null;
11
+ orderIndex = null;
12
+ orderChannel;
13
+ fragmentSize = 0;
14
+ fragmentId;
15
+ fragmentIndex;
16
+ content;
17
+ fromBinary(stream) {
18
+ const header = stream.readByte();
19
+ this.reliability = (header & 224) >> 5;
20
+ const length = Math.ceil(stream.readShort() / 8);
21
+ if (this.isReliable()) {
22
+ this.reliableIndex = stream.readTriadLE();
23
+ }
24
+ if (this.isSequenced()) {
25
+ this.sequenceIndex = stream.readTriadLE();
26
+ }
27
+ if (this.isOrdered()) {
28
+ this.orderIndex = stream.readTriadLE();
29
+ this.orderChannel = stream.readByte();
30
+ }
31
+ if ((header & BitFlags.SPLIT) > 0) {
32
+ this.fragmentSize = stream.readInt();
33
+ this.fragmentId = stream.readShort();
34
+ this.fragmentIndex = stream.readInt();
35
+ }
36
+ this.content = stream.read(length);
37
+ return this;
38
+ }
39
+ toBinary() {
40
+ const stream = new BinaryStream();
41
+ const fragmented = this.isFragmented();
42
+ stream.writeByte(this.reliability << 5 | (fragmented ? BitFlags.SPLIT : 0));
43
+ stream.writeUnsignedShort(this.content.byteLength << 3);
44
+ if (this.isReliable()) {
45
+ assert(typeof this.reliableIndex === "number", "Invalid ReliableIndex for reliable Frame");
46
+ stream.writeUnsignedTriadLE(this.reliableIndex);
47
+ }
48
+ if (this.isSequenced()) {
49
+ assert(typeof this.sequenceIndex === "number", "Invalid SequenceIndex for sequenced Frame");
50
+ stream.writeUnsignedTriadLE(this.sequenceIndex);
51
+ }
52
+ if (this.isOrdered()) {
53
+ assert(typeof this.orderIndex === "number", "Invalid OrderIndex for ordered Frame");
54
+ stream.writeUnsignedTriadLE(this.orderIndex);
55
+ assert(typeof this.orderChannel === "number", "Invalid OrderChannel for ordered FrameSet");
56
+ stream.writeByte(this.orderChannel);
57
+ }
58
+ if (fragmented) {
59
+ stream.writeUnsignedInt(this.fragmentSize);
60
+ stream.writeUnsignedShort(this.fragmentId);
61
+ stream.writeUnsignedInt(this.fragmentIndex);
62
+ }
63
+ stream.write(this.content);
64
+ return stream;
65
+ }
66
+ getByteLength() {
67
+ return 3 + this.content.byteLength + (this.isReliable() ? 3 : 0) + (this.isSequenced() ? 3 : 0) + (this.isOrdered() ? 4 : 0) + (this.isFragmented() ? 10 : 0);
68
+ }
69
+ isReliable() {
70
+ return [
71
+ FrameReliability.RELIABLE,
72
+ FrameReliability.RELIABLE_ORDERED,
73
+ FrameReliability.RELIABLE_SEQUENCED,
74
+ FrameReliability.RELIABLE_WITH_ACK_RECEIPT,
75
+ FrameReliability.RELIABLE_ORDERED_WITH_ACK_RECEIPT
76
+ ].includes(this.reliability);
77
+ }
78
+ isSequenced() {
79
+ return [FrameReliability.RELIABLE_SEQUENCED, FrameReliability.UNRELIABLE_SEQUENCED].includes(this.reliability);
80
+ }
81
+ isOrdered() {
82
+ return [
83
+ FrameReliability.UNRELIABLE_SEQUENCED,
84
+ FrameReliability.RELIABLE_ORDERED,
85
+ FrameReliability.RELIABLE_SEQUENCED,
86
+ FrameReliability.RELIABLE_ORDERED_WITH_ACK_RECEIPT
87
+ ].includes(this.reliability);
88
+ }
89
+ isOrderedExclusive() {
90
+ return [FrameReliability.RELIABLE_ORDERED, FrameReliability.RELIABLE_ORDERED_WITH_ACK_RECEIPT].includes(
91
+ this.reliability
92
+ );
93
+ }
94
+ isFragmented() {
95
+ return this.fragmentSize > 0;
96
+ }
97
+ }
98
+
99
+ export { MAX_FRAME_BYTE_LENGTH, Frame as default };
100
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRnJhbWUuZXMuanMiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wcm90b2NvbC9GcmFtZS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgQmluYXJ5U3RyZWFtIGZyb20gJ0Bqc3ByaXNtYXJpbmUvanNiaW5hcnl1dGlscyc7XG5pbXBvcnQgQml0RmxhZ3MgZnJvbSAnLi9CaXRGbGFncyc7XG5pbXBvcnQgRnJhbWVSZWxpYWJpbGl0eSBmcm9tICcuL0ZyYW1lUmVsaWFiaWxpdHknO1xuaW1wb3J0IGFzc2VydCBmcm9tICdhc3NlcnQnO1xuXG4vLyBodHRwczovL2dpdGh1Yi5jb20vZmFjZWJvb2thcmNoaXZlL1Jha05ldC9ibG9iLzFhMTY5ODk1YTkwMGM5ZmM0ODQxYzU1NmUxNjUxNDE4MmI3NWZhZjgvU291cmNlL1JlbGlhYmlsaXR5TGF5ZXIuY3BwI0wxMzNcbi8vIEl0J3MgdGhlIG1heGltdW0gbnVtYmVyIG9mIGJ5dGVzIGEgZnJhbWVzZXQgY2FuIHRha2UuIChzcGxpdHRlZCByZWxpYWJsZSBzZXF1ZW5jZWQpLlxuZXhwb3J0IGNvbnN0IE1BWF9GUkFNRV9CWVRFX0xFTkdUSCA9IDIzO1xuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBGcmFtZSB7XG4gICAgcHVibGljIHJlbGlhYmlsaXR5ID0gRnJhbWVSZWxpYWJpbGl0eS5VTlJFTElBQkxFO1xuXG4gICAgcHVibGljIHJlbGlhYmxlSW5kZXg6IG51bWJlciB8IG51bGwgPSBudWxsO1xuXG4gICAgcHVibGljIHNlcXVlbmNlSW5kZXg6IG51bWJlciB8IG51bGwgPSBudWxsO1xuXG4gICAgcHVibGljIG9yZGVySW5kZXg6IG51bWJlciB8IG51bGwgPSBudWxsO1xuICAgIHB1YmxpYyBvcmRlckNoYW5uZWwhOiBOb25OdWxsYWJsZTxudW1iZXI+O1xuXG4gICAgcHVibGljIGZyYWdtZW50U2l6ZSA9IDA7XG4gICAgcHVibGljIGZyYWdtZW50SWQhOiBudW1iZXI7XG4gICAgcHVibGljIGZyYWdtZW50SW5kZXghOiBudW1iZXI7XG5cbiAgICBwdWJsaWMgY29udGVudCE6IEJ1ZmZlcjtcblxuICAgIHB1YmxpYyBmcm9tQmluYXJ5KHN0cmVhbTogQmluYXJ5U3RyZWFtKTogRnJhbWUge1xuICAgICAgICBjb25zdCBoZWFkZXIgPSBzdHJlYW0ucmVhZEJ5dGUoKTtcbiAgICAgICAgdGhpcy5yZWxpYWJpbGl0eSA9IChoZWFkZXIgJiAweGUwKSA+PiA1O1xuXG4gICAgICAgIC8vIExlbmd0aCBmcm9tIGJpdHMgdG8gYnl0ZXNcbiAgICAgICAgY29uc3QgbGVuZ3RoID0gTWF0aC5jZWlsKHN0cmVhbS5yZWFkU2hvcnQoKSAvIDgpO1xuXG4gICAgICAgIGlmICh0aGlzLmlzUmVsaWFibGUoKSkge1xuICAgICAgICAgICAgdGhpcy5yZWxpYWJsZUluZGV4ID0gc3RyZWFtLnJlYWRUcmlhZExFKCk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5pc1NlcXVlbmNlZCgpKSB7XG4gICAgICAgICAgICB0aGlzLnNlcXVlbmNlSW5kZXggPSBzdHJlYW0ucmVhZFRyaWFkTEUoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLmlzT3JkZXJlZCgpKSB7XG4gICAgICAgICAgICB0aGlzLm9yZGVySW5kZXggPSBzdHJlYW0ucmVhZFRyaWFkTEUoKTtcbiAgICAgICAgICAgIHRoaXMub3JkZXJDaGFubmVsID0gc3RyZWFtLnJlYWRCeXRlKCk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoKGhlYWRlciAmIEJpdEZsYWdzLlNQTElUKSA+IDApIHtcbiAgICAgICAgICAgIHRoaXMuZnJhZ21lbnRTaXplID0gc3RyZWFtLnJlYWRJbnQoKTtcbiAgICAgICAgICAgIHRoaXMuZnJhZ21lbnRJZCA9IHN0cmVhbS5yZWFkU2hvcnQoKTtcbiAgICAgICAgICAgIHRoaXMuZnJhZ21lbnRJbmRleCA9IHN0cmVhbS5yZWFkSW50KCk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmNvbnRlbnQgPSBzdHJlYW0ucmVhZChsZW5ndGgpO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICBwdWJsaWMgdG9CaW5hcnkoKTogQmluYXJ5U3RyZWFtIHtcbiAgICAgICAgY29uc3Qgc3RyZWFtID0gbmV3IEJpbmFyeVN0cmVhbSgpO1xuICAgICAgICBjb25zdCBmcmFnbWVudGVkID0gdGhpcy5pc0ZyYWdtZW50ZWQoKTtcblxuICAgICAgICBzdHJlYW0ud3JpdGVCeXRlKCh0aGlzLnJlbGlhYmlsaXR5IDw8IDUpIHwgKGZyYWdtZW50ZWQgPyBCaXRGbGFncy5TUExJVCA6IDApKTtcbiAgICAgICAgc3RyZWFtLndyaXRlVW5zaWduZWRTaG9ydCh0aGlzLmNvbnRlbnQuYnl0ZUxlbmd0aCA8PCAzKTtcblxuICAgICAgICBpZiAodGhpcy5pc1JlbGlhYmxlKCkpIHtcbiAgICAgICAgICAgIGFzc2VydCh0eXBlb2YgdGhpcy5yZWxpYWJsZUluZGV4ID09PSAnbnVtYmVyJywgJ0ludmFsaWQgUmVsaWFibGVJbmRleCBmb3IgcmVsaWFibGUgRnJhbWUnKTtcbiAgICAgICAgICAgIHN0cmVhbS53cml0ZVVuc2lnbmVkVHJpYWRMRSh0aGlzLnJlbGlhYmxlSW5kZXgpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMuaXNTZXF1ZW5jZWQoKSkge1xuICAgICAgICAgICAgYXNzZXJ0KHR5cGVvZiB0aGlzLnNlcXVlbmNlSW5kZXggPT09ICdudW1iZXInLCAnSW52YWxpZCBTZXF1ZW5jZUluZGV4IGZvciBzZXF1ZW5jZWQgRnJhbWUnKTtcbiAgICAgICAgICAgIHN0cmVhbS53cml0ZVVuc2lnbmVkVHJpYWRMRSh0aGlzLnNlcXVlbmNlSW5kZXgpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMuaXNPcmRlcmVkKCkpIHtcbiAgICAgICAgICAgIGFzc2VydCh0eXBlb2YgdGhpcy5vcmRlckluZGV4ID09PSAnbnVtYmVyJywgJ0ludmFsaWQgT3JkZXJJbmRleCBmb3Igb3JkZXJlZCBGcmFtZScpO1xuICAgICAgICAgICAgc3RyZWFtLndyaXRlVW5zaWduZWRUcmlhZExFKHRoaXMub3JkZXJJbmRleCk7XG4gICAgICAgICAgICBhc3NlcnQodHlwZW9mIHRoaXMub3JkZXJDaGFubmVsID09PSAnbnVtYmVyJywgJ0ludmFsaWQgT3JkZXJDaGFubmVsIGZvciBvcmRlcmVkIEZyYW1lU2V0Jyk7XG4gICAgICAgICAgICBzdHJlYW0ud3JpdGVCeXRlKHRoaXMub3JkZXJDaGFubmVsKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChmcmFnbWVudGVkKSB7XG4gICAgICAgICAgICBzdHJlYW0ud3JpdGVVbnNpZ25lZEludCh0aGlzLmZyYWdtZW50U2l6ZSk7XG4gICAgICAgICAgICBzdHJlYW0ud3JpdGVVbnNpZ25lZFNob3J0KHRoaXMuZnJhZ21lbnRJZCk7XG4gICAgICAgICAgICBzdHJlYW0ud3JpdGVVbnNpZ25lZEludCh0aGlzLmZyYWdtZW50SW5kZXgpO1xuICAgICAgICB9XG5cbiAgICAgICAgc3RyZWFtLndyaXRlKHRoaXMuY29udGVudCk7XG4gICAgICAgIHJldHVybiBzdHJlYW07XG4gICAgfVxuXG4gICAgcHVibGljIGdldEJ5dGVMZW5ndGgoKTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgIDMgK1xuICAgICAgICAgICAgdGhpcy5jb250ZW50LmJ5dGVMZW5ndGggK1xuICAgICAgICAgICAgKHRoaXMuaXNSZWxpYWJsZSgpID8gMyA6IDApICtcbiAgICAgICAgICAgICh0aGlzLmlzU2VxdWVuY2VkKCkgPyAzIDogMCkgK1xuICAgICAgICAgICAgKHRoaXMuaXNPcmRlcmVkKCkgPyA0IDogMCkgK1xuICAgICAgICAgICAgKHRoaXMuaXNGcmFnbWVudGVkKCkgPyAxMCA6IDApXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgcHVibGljIGlzUmVsaWFibGUoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiBbXG4gICAgICAgICAgICBGcmFtZVJlbGlhYmlsaXR5LlJFTElBQkxFLFxuICAgICAgICAgICAgRnJhbWVSZWxpYWJpbGl0eS5SRUxJQUJMRV9PUkRFUkVELFxuICAgICAgICAgICAgRnJhbWVSZWxpYWJpbGl0eS5SRUxJQUJMRV9TRVFVRU5DRUQsXG4gICAgICAgICAgICBGcmFtZVJlbGlhYmlsaXR5LlJFTElBQkxFX1dJVEhfQUNLX1JFQ0VJUFQsXG4gICAgICAgICAgICBGcmFtZVJlbGlhYmlsaXR5LlJFTElBQkxFX09SREVSRURfV0lUSF9BQ0tfUkVDRUlQVFxuICAgICAgICBdLmluY2x1ZGVzKHRoaXMucmVsaWFiaWxpdHkpO1xuICAgIH1cblxuICAgIHB1YmxpYyBpc1NlcXVlbmNlZCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIFtGcmFtZVJlbGlhYmlsaXR5LlJFTElBQkxFX1NFUVVFTkNFRCwgRnJhbWVSZWxpYWJpbGl0eS5VTlJFTElBQkxFX1NFUVVFTkNFRF0uaW5jbHVkZXModGhpcy5yZWxpYWJpbGl0eSk7XG4gICAgfVxuXG4gICAgcHVibGljIGlzT3JkZXJlZCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIFtcbiAgICAgICAgICAgIEZyYW1lUmVsaWFiaWxpdHkuVU5SRUxJQUJMRV9TRVFVRU5DRUQsXG4gICAgICAgICAgICBGcmFtZVJlbGlhYmlsaXR5LlJFTElBQkxFX09SREVSRUQsXG4gICAgICAgICAgICBGcmFtZVJlbGlhYmlsaXR5LlJFTElBQkxFX1NFUVVFTkNFRCxcbiAgICAgICAgICAgIEZyYW1lUmVsaWFiaWxpdHkuUkVMSUFCTEVfT1JERVJFRF9XSVRIX0FDS19SRUNFSVBUXG4gICAgICAgIF0uaW5jbHVkZXModGhpcy5yZWxpYWJpbGl0eSk7XG4gICAgfVxuXG4gICAgcHVibGljIGlzT3JkZXJlZEV4Y2x1c2l2ZSgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIFtGcmFtZVJlbGlhYmlsaXR5LlJFTElBQkxFX09SREVSRUQsIEZyYW1lUmVsaWFiaWxpdHkuUkVMSUFCTEVfT1JERVJFRF9XSVRIX0FDS19SRUNFSVBUXS5pbmNsdWRlcyhcbiAgICAgICAgICAgIHRoaXMucmVsaWFiaWxpdHlcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgaXNGcmFnbWVudGVkKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5mcmFnbWVudFNpemUgPiAwO1xuICAgIH1cbn1cbiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQU9PLE1BQU0scUJBQXdCLEdBQUEsR0FBQTtBQUVyQyxNQUFxQixLQUFNLENBQUE7QUFBQSxFQUNoQixjQUFjLGdCQUFpQixDQUFBLFVBQUEsQ0FBQTtBQUFBLEVBRS9CLGFBQStCLEdBQUEsSUFBQSxDQUFBO0FBQUEsRUFFL0IsYUFBK0IsR0FBQSxJQUFBLENBQUE7QUFBQSxFQUUvQixVQUE0QixHQUFBLElBQUEsQ0FBQTtBQUFBLEVBQzVCLFlBQUEsQ0FBQTtBQUFBLEVBRUEsWUFBZSxHQUFBLENBQUEsQ0FBQTtBQUFBLEVBQ2YsVUFBQSxDQUFBO0FBQUEsRUFDQSxhQUFBLENBQUE7QUFBQSxFQUVBLE9BQUEsQ0FBQTtBQUFBLEVBRUEsV0FBVyxNQUE2QixFQUFBO0FBQzNDLElBQU0sTUFBQSxNQUFBLEdBQVMsT0FBTyxRQUFTLEVBQUEsQ0FBQTtBQUMvQixJQUFLLElBQUEsQ0FBQSxXQUFBLEdBQUEsQ0FBZSxTQUFTLEdBQVMsS0FBQSxDQUFBLENBQUE7QUFHdEMsSUFBQSxNQUFNLFNBQVMsSUFBSyxDQUFBLElBQUEsQ0FBSyxNQUFPLENBQUEsU0FBQSxLQUFjLENBQUMsQ0FBQSxDQUFBO0FBRS9DLElBQUksSUFBQSxJQUFBLENBQUssWUFBYyxFQUFBO0FBQ25CLE1BQUssSUFBQSxDQUFBLGFBQUEsR0FBZ0IsT0FBTyxXQUFZLEVBQUEsQ0FBQTtBQUFBLEtBQzVDO0FBRUEsSUFBSSxJQUFBLElBQUEsQ0FBSyxhQUFlLEVBQUE7QUFDcEIsTUFBSyxJQUFBLENBQUEsYUFBQSxHQUFnQixPQUFPLFdBQVksRUFBQSxDQUFBO0FBQUEsS0FDNUM7QUFFQSxJQUFJLElBQUEsSUFBQSxD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
@@ -0,0 +1,19 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: 'Module' } });
4
+
5
+ var FrameReliability = /* @__PURE__ */ ((FrameReliability2) => {
6
+ FrameReliability2[FrameReliability2["UNRELIABLE"] = 0] = "UNRELIABLE";
7
+ FrameReliability2[FrameReliability2["UNRELIABLE_SEQUENCED"] = 1] = "UNRELIABLE_SEQUENCED";
8
+ FrameReliability2[FrameReliability2["RELIABLE"] = 2] = "RELIABLE";
9
+ FrameReliability2[FrameReliability2["RELIABLE_ORDERED"] = 3] = "RELIABLE_ORDERED";
10
+ FrameReliability2[FrameReliability2["RELIABLE_SEQUENCED"] = 4] = "RELIABLE_SEQUENCED";
11
+ FrameReliability2[FrameReliability2["UNREALIABLE_WITH_ACK_RECEIPT"] = 5] = "UNREALIABLE_WITH_ACK_RECEIPT";
12
+ FrameReliability2[FrameReliability2["RELIABLE_WITH_ACK_RECEIPT"] = 6] = "RELIABLE_WITH_ACK_RECEIPT";
13
+ FrameReliability2[FrameReliability2["RELIABLE_ORDERED_WITH_ACK_RECEIPT"] = 7] = "RELIABLE_ORDERED_WITH_ACK_RECEIPT";
14
+ return FrameReliability2;
15
+ })(FrameReliability || {});
16
+
17
+ exports.FrameReliability = FrameReliability;
18
+ exports.default = FrameReliability;
19
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRnJhbWVSZWxpYWJpbGl0eS5janMuanMiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wcm90b2NvbC9GcmFtZVJlbGlhYmlsaXR5LnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8vIGh0dHA6Ly93d3cuamVua2luc3NvZnR3YXJlLmNvbS9yYWtuZXQvbWFudWFsL3JlbGlhYmlsaXR5dHlwZXMuaHRtbFxuZXhwb3J0IGVudW0gRnJhbWVSZWxpYWJpbGl0eSB7XG4gICAgVU5SRUxJQUJMRSxcbiAgICBVTlJFTElBQkxFX1NFUVVFTkNFRCxcbiAgICBSRUxJQUJMRSxcbiAgICBSRUxJQUJMRV9PUkRFUkVELFxuICAgIFJFTElBQkxFX1NFUVVFTkNFRCxcbiAgICBVTlJFQUxJQUJMRV9XSVRIX0FDS19SRUNFSVBULFxuICAgIFJFTElBQkxFX1dJVEhfQUNLX1JFQ0VJUFQsXG4gICAgUkVMSUFCTEVfT1JERVJFRF9XSVRIX0FDS19SRUNFSVBUXG59XG5leHBvcnQgZGVmYXVsdCBGcmFtZVJlbGlhYmlsaXR5O1xuIl0sIm5hbWVzIjpbIkZyYW1lUmVsaWFiaWxpdHkiXSwibWFwcGluZ3MiOiI7Ozs7QUFDWSxJQUFBLGdCQUFBLHFCQUFBQSxpQkFBTCxLQUFBO0FBQ0gsRUFBQUEsaUJBQUEsQ0FBQSxpQkFBQSxDQUFBLFlBQUEsQ0FBQSxHQUFBLENBQUEsQ0FBQSxHQUFBLFlBQUEsQ0FBQTtBQUNBLEVBQUFBLGlCQUFBLENBQUEsaUJBQUEsQ0FBQSxzQkFBQSxDQUFBLEdBQUEsQ0FBQSxDQUFBLEdBQUEsc0JBQUEsQ0FBQTtBQUNBLEVBQUFBLGlCQUFBLENBQUEsaUJBQUEsQ0FBQSxVQUFBLENBQUEsR0FBQSxDQUFBLENBQUEsR0FBQSxVQUFBLENBQUE7QUFDQSxFQUFBQSxpQkFBQSxDQUFBLGlCQUFBLENBQUEsa0JBQUEsQ0FBQSxHQUFBLENBQUEsQ0FBQSxHQUFBLGtCQUFBLENBQUE7QUFDQSxFQUFBQSxpQkFBQSxDQUFBLGlCQUFBLENBQUEsb0JBQUEsQ0FBQSxHQUFBLENBQUEsQ0FBQSxHQUFBLG9CQUFBLENBQUE7QUFDQSxFQUFBQSxpQkFBQSxDQUFBLGlCQUFBLENBQUEsOEJBQUEsQ0FBQSxHQUFBLENBQUEsQ0FBQSxHQUFBLDhCQUFBLENBQUE7QUFDQSxFQUFBQSxpQkFBQSxDQUFBLGlCQUFBLENBQUEsMkJBQUEsQ0FBQSxHQUFBLENBQUEsQ0FBQSxHQUFBLDJCQUFBLENBQUE7QUFDQSxFQUFBQSxpQkFBQSxDQUFBLGlCQUFBLENBQUEsbUNBQUEsQ0FBQSxHQUFBLENBQUEsQ0FBQSxHQUFBLG1DQUFBLENBQUE7QUFSUSxFQUFBQSxPQUFBQSxpQkFBQUEsQ0FBQUE7QUFBQSxDQUFBLEVBQUEsZ0JBQUEsSUFBQSxFQUFBOzs7OzsifQ==
@@ -0,0 +1,14 @@
1
+ var FrameReliability = /* @__PURE__ */ ((FrameReliability2) => {
2
+ FrameReliability2[FrameReliability2["UNRELIABLE"] = 0] = "UNRELIABLE";
3
+ FrameReliability2[FrameReliability2["UNRELIABLE_SEQUENCED"] = 1] = "UNRELIABLE_SEQUENCED";
4
+ FrameReliability2[FrameReliability2["RELIABLE"] = 2] = "RELIABLE";
5
+ FrameReliability2[FrameReliability2["RELIABLE_ORDERED"] = 3] = "RELIABLE_ORDERED";
6
+ FrameReliability2[FrameReliability2["RELIABLE_SEQUENCED"] = 4] = "RELIABLE_SEQUENCED";
7
+ FrameReliability2[FrameReliability2["UNREALIABLE_WITH_ACK_RECEIPT"] = 5] = "UNREALIABLE_WITH_ACK_RECEIPT";
8
+ FrameReliability2[FrameReliability2["RELIABLE_WITH_ACK_RECEIPT"] = 6] = "RELIABLE_WITH_ACK_RECEIPT";
9
+ FrameReliability2[FrameReliability2["RELIABLE_ORDERED_WITH_ACK_RECEIPT"] = 7] = "RELIABLE_ORDERED_WITH_ACK_RECEIPT";
10
+ return FrameReliability2;
11
+ })(FrameReliability || {});
12
+
13
+ export { FrameReliability, FrameReliability as default };
14
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRnJhbWVSZWxpYWJpbGl0eS5lcy5qcyIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3Byb3RvY29sL0ZyYW1lUmVsaWFiaWxpdHkudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLy8gaHR0cDovL3d3dy5qZW5raW5zc29mdHdhcmUuY29tL3Jha25ldC9tYW51YWwvcmVsaWFiaWxpdHl0eXBlcy5odG1sXG5leHBvcnQgZW51bSBGcmFtZVJlbGlhYmlsaXR5IHtcbiAgICBVTlJFTElBQkxFLFxuICAgIFVOUkVMSUFCTEVfU0VRVUVOQ0VELFxuICAgIFJFTElBQkxFLFxuICAgIFJFTElBQkxFX09SREVSRUQsXG4gICAgUkVMSUFCTEVfU0VRVUVOQ0VELFxuICAgIFVOUkVBTElBQkxFX1dJVEhfQUNLX1JFQ0VJUFQsXG4gICAgUkVMSUFCTEVfV0lUSF9BQ0tfUkVDRUlQVCxcbiAgICBSRUxJQUJMRV9PUkRFUkVEX1dJVEhfQUNLX1JFQ0VJUFRcbn1cbmV4cG9ydCBkZWZhdWx0IEZyYW1lUmVsaWFiaWxpdHk7XG4iXSwibmFtZXMiOlsiRnJhbWVSZWxpYWJpbGl0eSJdLCJtYXBwaW5ncyI6IkFBQ1ksSUFBQSxnQkFBQSxxQkFBQUEsaUJBQUwsS0FBQTtBQUNILEVBQUFBLGlCQUFBLENBQUEsaUJBQUEsQ0FBQSxZQUFBLENBQUEsR0FBQSxDQUFBLENBQUEsR0FBQSxZQUFBLENBQUE7QUFDQSxFQUFBQSxpQkFBQSxDQUFBLGlCQUFBLENBQUEsc0JBQUEsQ0FBQSxHQUFBLENBQUEsQ0FBQSxHQUFBLHNCQUFBLENBQUE7QUFDQSxFQUFBQSxpQkFBQSxDQUFBLGlCQUFBLENBQUEsVUFBQSxDQUFBLEdBQUEsQ0FBQSxDQUFBLEdBQUEsVUFBQSxDQUFBO0FBQ0EsRUFBQUEsaUJBQUEsQ0FBQSxpQkFBQSxDQUFBLGtCQUFBLENBQUEsR0FBQSxDQUFBLENBQUEsR0FBQSxrQkFBQSxDQUFBO0FBQ0EsRUFBQUEsaUJBQUEsQ0FBQSxpQkFBQSxDQUFBLG9CQUFBLENBQUEsR0FBQSxDQUFBLENBQUEsR0FBQSxvQkFBQSxDQUFBO0FBQ0EsRUFBQUEsaUJBQUEsQ0FBQSxpQkFBQSxDQUFBLDhCQUFBLENBQUEsR0FBQSxDQUFBLENBQUEsR0FBQSw4QkFBQSxDQUFBO0FBQ0EsRUFBQUEsaUJBQUEsQ0FBQSxpQkFBQSxDQUFBLDJCQUFBLENBQUEsR0FBQSxDQUFBLENBQUEsR0FBQSwyQkFBQSxDQUFBO0FBQ0EsRUFBQUEsaUJBQUEsQ0FBQSxpQkFBQSxDQUFBLG1DQUFBLENBQUEsR0FBQSxDQUFBLENBQUEsR0FBQSxtQ0FBQSxDQUFBO0FBUlEsRUFBQUEsT0FBQUEsaUJBQUFBLENBQUFBO0FBQUEsQ0FBQSxFQUFBLGdCQUFBLElBQUEsRUFBQTs7OzsifQ==
@@ -0,0 +1,45 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: 'Module' } });
4
+
5
+ const protocol_BitFlags = require('./BitFlags.cjs.js');
6
+ const protocol_Frame = require('./Frame.cjs.js');
7
+ const protocol_Packet = require('./Packet.cjs.js');
8
+ require('@jsprismarine/jsbinaryutils');
9
+ require('./FrameReliability.cjs.js');
10
+ require('assert');
11
+ require('../utils/InetAddress.cjs.js');
12
+
13
+ const DATAGRAM_HEADER_BYTE_LENGTH = 6;
14
+ class FrameSet extends protocol_Packet.default {
15
+ constructor(buffer) {
16
+ super(protocol_BitFlags.BitFlags.VALID, buffer);
17
+ }
18
+ sequenceNumber;
19
+ frames = [];
20
+ decodePayload() {
21
+ this.sequenceNumber = this.readUnsignedTriadLE();
22
+ do {
23
+ this.frames.push(new protocol_Frame.default().fromBinary(this));
24
+ } while (!this.feof());
25
+ }
26
+ encodePayload() {
27
+ this.writeUnsignedTriadLE(this.sequenceNumber);
28
+ for (const frame of this.frames) {
29
+ this.write(frame.toBinary().getBuffer());
30
+ }
31
+ }
32
+ // TODO: for continuos flag
33
+ // public addFrame(): boolean {}
34
+ getByteLength() {
35
+ let length = 4;
36
+ for (const frame of this.frames) {
37
+ length += frame.getByteLength();
38
+ }
39
+ return length;
40
+ }
41
+ }
42
+
43
+ exports.DATAGRAM_HEADER_BYTE_LENGTH = DATAGRAM_HEADER_BYTE_LENGTH;
44
+ exports.default = FrameSet;
45
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRnJhbWVTZXQuY2pzLmpzIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcHJvdG9jb2wvRnJhbWVTZXQudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IEJpdEZsYWdzIGZyb20gJy4vQml0RmxhZ3MnO1xuaW1wb3J0IEZyYW1lIGZyb20gJy4vRnJhbWUnO1xuaW1wb3J0IFBhY2tldCBmcm9tICcuL1BhY2tldCc7XG5cbi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9mYWNlYm9va2FyY2hpdmUvUmFrTmV0L2Jsb2IvMWExNjk4OTVhOTAwYzlmYzQ4NDFjNTU2ZTE2NTE0MTgyYjc1ZmFmOC9Tb3VyY2UvUmVsaWFiaWxpdHlMYXllci5jcHAjTDEzM1xuZXhwb3J0IGNvbnN0IERBVEFHUkFNX0hFQURFUl9CWVRFX0xFTkdUSCA9IDY7XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIEZyYW1lU2V0IGV4dGVuZHMgUGFja2V0IHtcbiAgICBwdWJsaWMgY29uc3RydWN0b3IoYnVmZmVyPzogQnVmZmVyKSB7XG4gICAgICAgIHN1cGVyKEJpdEZsYWdzLlZBTElELCBidWZmZXIpO1xuICAgIH1cblxuICAgIHB1YmxpYyBzZXF1ZW5jZU51bWJlciE6IG51bWJlcjtcbiAgICBwdWJsaWMgZnJhbWVzOiBGcmFtZVtdID0gW107XG5cbiAgICBwdWJsaWMgZGVjb2RlUGF5bG9hZCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5zZXF1ZW5jZU51bWJlciA9IHRoaXMucmVhZFVuc2lnbmVkVHJpYWRMRSgpO1xuICAgICAgICBkbyB7XG4gICAgICAgICAgICB0aGlzLmZyYW1lcy5wdXNoKG5ldyBGcmFtZSgpLmZyb21CaW5hcnkodGhpcykpO1xuICAgICAgICB9IHdoaWxlICghdGhpcy5mZW9mKCkpO1xuICAgIH1cblxuICAgIHB1YmxpYyBlbmNvZGVQYXlsb2FkKCk6IHZvaWQge1xuICAgICAgICB0aGlzLndyaXRlVW5zaWduZWRUcmlhZExFKHRoaXMuc2VxdWVuY2VOdW1iZXIpO1xuICAgICAgICBmb3IgKGNvbnN0IGZyYW1lIG9mIHRoaXMuZnJhbWVzKSB7XG4gICAgICAgICAgICB0aGlzLndyaXRlKGZyYW1lLnRvQmluYXJ5KCkuZ2V0QnVmZmVyKCkpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLy8gVE9ETzogZm9yIGNvbnRpbnVvcyBmbGFnXG4gICAgLy8gcHVibGljIGFkZEZyYW1lKCk6IGJvb2xlYW4ge31cblxuICAgIHB1YmxpYyBnZXRCeXRlTGVuZ3RoKCk6IG51bWJlciB7XG4gICAgICAgIGxldCBsZW5ndGggPSA0OyAvLyBoZWFkZXIgKDEgYnl0ZSkgKyB0cmlhZCAoMyBieXRlcylcbiAgICAgICAgZm9yIChjb25zdCBmcmFtZSBvZiB0aGlzLmZyYW1lcykge1xuICAgICAgICAgICAgbGVuZ3RoICs9IGZyYW1lLmdldEJ5dGVMZW5ndGgoKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gbGVuZ3RoO1xuICAgIH1cbn1cbiJdLCJuYW1lcyI6WyJQYWNrZXQiLCJCaXRGbGFncyIsIkZyYW1lIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7QUFLTyxNQUFNLDJCQUE4QixHQUFBLEVBQUE7QUFFM0MsTUFBcUIsaUJBQWlCQSx1QkFBTyxDQUFBO0FBQUEsRUFDbEMsWUFBWSxNQUFpQixFQUFBO0FBQ2hDLElBQU0sS0FBQSxDQUFBQywwQkFBQSxDQUFTLE9BQU8sTUFBTSxDQUFBLENBQUE7QUFBQSxHQUNoQztBQUFBLEVBRU8sY0FBQSxDQUFBO0FBQUEsRUFDQSxTQUFrQixFQUFDLENBQUE7QUFBQSxFQUVuQixhQUFzQixHQUFBO0FBQ3pCLElBQUssSUFBQSxDQUFBLGNBQUEsR0FBaUIsS0FBSyxtQkFBb0IsRUFBQSxDQUFBO0FBQy9DLElBQUcsR0FBQTtBQUNDLE1BQUEsSUFBQSxDQUFLLE9BQU8sSUFBSyxDQUFBLElBQUlDLHdCQUFRLENBQUEsVUFBQSxDQUFXLElBQUksQ0FBQyxDQUFBLENBQUE7QUFBQSxLQUNqRCxRQUFTLENBQUMsSUFBQSxDQUFLLElBQUssRUFBQSxFQUFBO0FBQUEsR0FDeEI7QUFBQSxFQUVPLGFBQXNCLEdBQUE7QUFDekIsSUFBSyxJQUFBLENBQUEsb0JBQUEsQ0FBcUIsS0FBSyxjQUFjLENBQUEsQ0FBQTtBQUM3QyxJQUFXLEtBQUEsTUFBQSxLQUFBLElBQVMsS0FBSyxNQUFRLEVBQUE7QUFDN0IsTUFBQSxJQUFBLENBQUssS0FBTSxDQUFBLEtBQUEsQ0FBTSxRQUFTLEVBQUEsQ0FBRSxXQUFXLENBQUEsQ0FBQTtBQUFBLEtBQzNDO0FBQUEsR0FDSjtBQUFBO0FBQUE7QUFBQSxFQUtPLGFBQXdCLEdBQUE7QUFDM0IsSUFBQSxJQUFJLE1BQVMsR0FBQSxDQUFBLENBQUE7QUFDYixJQUFXLEtBQUEsTUFBQSxLQUFBLElBQVMsS0FBSyxNQUFRLEVBQUE7QUFDN0IsTUFBQSxNQUFBLElBQVUsTUFBTSxhQUFjLEVBQUEsQ0FBQTtBQUFBLEtBQ2xDO0FBQ0EsSUFBTyxPQUFBLE1BQUEsQ0FBQTtBQUFBLEdBQ1g7QUFDSjs7Ozs7In0=
@@ -1,6 +1,6 @@
1
- /// <reference types="node" resolution-mode="require"/>
2
- import Frame from './Frame.js';
3
- import Packet from './Packet.js';
1
+ /// <reference types="node" />
2
+ import Frame from './Frame';
3
+ import Packet from './Packet';
4
4
  export declare const DATAGRAM_HEADER_BYTE_LENGTH = 6;
5
5
  export default class FrameSet extends Packet {
6
6
  constructor(buffer?: Buffer);
@@ -1 +1 @@
1
- {"version":3,"file":"FrameSet.d.ts","sourceRoot":"","sources":["../../src/protocol/FrameSet.ts"],"names":[],"mappings":";AACA,OAAO,KAAK,MAAM,YAAY,CAAC;AAC/B,OAAO,MAAM,MAAM,aAAa,CAAC;AAGjC,eAAO,MAAM,2BAA2B,IAAI,CAAC;AAE7C,MAAM,CAAC,OAAO,OAAO,QAAS,SAAQ,MAAM;gBACrB,MAAM,CAAC,EAAE,MAAM;IAI3B,cAAc,EAAG,MAAM,CAAC;IACxB,MAAM,EAAE,KAAK,EAAE,CAAM;IAErB,aAAa,IAAI,IAAI;IAOrB,aAAa,IAAI,IAAI;IAUrB,aAAa,IAAI,MAAM;CAOjC"}
1
+ {"version":3,"file":"FrameSet.d.ts","sourceRoot":"","sources":["../../src/protocol/FrameSet.ts"],"names":[],"mappings":";AACA,OAAO,KAAK,MAAM,SAAS,CAAC;AAC5B,OAAO,MAAM,MAAM,UAAU,CAAC;AAG9B,eAAO,MAAM,2BAA2B,IAAI,CAAC;AAE7C,MAAM,CAAC,OAAO,OAAO,QAAS,SAAQ,MAAM;gBACrB,MAAM,CAAC,EAAE,MAAM;IAI3B,cAAc,EAAG,MAAM,CAAC;IACxB,MAAM,EAAE,KAAK,EAAE,CAAM;IAErB,aAAa,IAAI,IAAI;IAOrB,aAAa,IAAI,IAAI;IAUrB,aAAa,IAAI,MAAM;CAOjC"}
@@ -0,0 +1,40 @@
1
+ import { BitFlags } from './BitFlags.es.js';
2
+ import Frame from './Frame.es.js';
3
+ import Packet from './Packet.es.js';
4
+ import '@jsprismarine/jsbinaryutils';
5
+ import './FrameReliability.es.js';
6
+ import 'assert';
7
+ import '../utils/InetAddress.es.js';
8
+
9
+ const DATAGRAM_HEADER_BYTE_LENGTH = 6;
10
+ class FrameSet extends Packet {
11
+ constructor(buffer) {
12
+ super(BitFlags.VALID, buffer);
13
+ }
14
+ sequenceNumber;
15
+ frames = [];
16
+ decodePayload() {
17
+ this.sequenceNumber = this.readUnsignedTriadLE();
18
+ do {
19
+ this.frames.push(new Frame().fromBinary(this));
20
+ } while (!this.feof());
21
+ }
22
+ encodePayload() {
23
+ this.writeUnsignedTriadLE(this.sequenceNumber);
24
+ for (const frame of this.frames) {
25
+ this.write(frame.toBinary().getBuffer());
26
+ }
27
+ }
28
+ // TODO: for continuos flag
29
+ // public addFrame(): boolean {}
30
+ getByteLength() {
31
+ let length = 4;
32
+ for (const frame of this.frames) {
33
+ length += frame.getByteLength();
34
+ }
35
+ return length;
36
+ }
37
+ }
38
+
39
+ export { DATAGRAM_HEADER_BYTE_LENGTH, FrameSet as default };
40
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRnJhbWVTZXQuZXMuanMiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wcm90b2NvbC9GcmFtZVNldC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgQml0RmxhZ3MgZnJvbSAnLi9CaXRGbGFncyc7XG5pbXBvcnQgRnJhbWUgZnJvbSAnLi9GcmFtZSc7XG5pbXBvcnQgUGFja2V0IGZyb20gJy4vUGFja2V0JztcblxuLy8gaHR0cHM6Ly9naXRodWIuY29tL2ZhY2Vib29rYXJjaGl2ZS9SYWtOZXQvYmxvYi8xYTE2OTg5NWE5MDBjOWZjNDg0MWM1NTZlMTY1MTQxODJiNzVmYWY4L1NvdXJjZS9SZWxpYWJpbGl0eUxheWVyLmNwcCNMMTMzXG5leHBvcnQgY29uc3QgREFUQUdSQU1fSEVBREVSX0JZVEVfTEVOR1RIID0gNjtcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgRnJhbWVTZXQgZXh0ZW5kcyBQYWNrZXQge1xuICAgIHB1YmxpYyBjb25zdHJ1Y3RvcihidWZmZXI/OiBCdWZmZXIpIHtcbiAgICAgICAgc3VwZXIoQml0RmxhZ3MuVkFMSUQsIGJ1ZmZlcik7XG4gICAgfVxuXG4gICAgcHVibGljIHNlcXVlbmNlTnVtYmVyITogbnVtYmVyO1xuICAgIHB1YmxpYyBmcmFtZXM6IEZyYW1lW10gPSBbXTtcblxuICAgIHB1YmxpYyBkZWNvZGVQYXlsb2FkKCk6IHZvaWQge1xuICAgICAgICB0aGlzLnNlcXVlbmNlTnVtYmVyID0gdGhpcy5yZWFkVW5zaWduZWRUcmlhZExFKCk7XG4gICAgICAgIGRvIHtcbiAgICAgICAgICAgIHRoaXMuZnJhbWVzLnB1c2gobmV3IEZyYW1lKCkuZnJvbUJpbmFyeSh0aGlzKSk7XG4gICAgICAgIH0gd2hpbGUgKCF0aGlzLmZlb2YoKSk7XG4gICAgfVxuXG4gICAgcHVibGljIGVuY29kZVBheWxvYWQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMud3JpdGVVbnNpZ25lZFRyaWFkTEUodGhpcy5zZXF1ZW5jZU51bWJlcik7XG4gICAgICAgIGZvciAoY29uc3QgZnJhbWUgb2YgdGhpcy5mcmFtZXMpIHtcbiAgICAgICAgICAgIHRoaXMud3JpdGUoZnJhbWUudG9CaW5hcnkoKS5nZXRCdWZmZXIoKSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBUT0RPOiBmb3IgY29udGludW9zIGZsYWdcbiAgICAvLyBwdWJsaWMgYWRkRnJhbWUoKTogYm9vbGVhbiB7fVxuXG4gICAgcHVibGljIGdldEJ5dGVMZW5ndGgoKTogbnVtYmVyIHtcbiAgICAgICAgbGV0IGxlbmd0aCA9IDQ7IC8vIGhlYWRlciAoMSBieXRlKSArIHRyaWFkICgzIGJ5dGVzKVxuICAgICAgICBmb3IgKGNvbnN0IGZyYW1lIG9mIHRoaXMuZnJhbWVzKSB7XG4gICAgICAgICAgICBsZW5ndGggKz0gZnJhbWUuZ2V0Qnl0ZUxlbmd0aCgpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBsZW5ndGg7XG4gICAgfVxufVxuIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7O0FBS08sTUFBTSwyQkFBOEIsR0FBQSxFQUFBO0FBRTNDLE1BQXFCLGlCQUFpQixNQUFPLENBQUE7QUFBQSxFQUNsQyxZQUFZLE1BQWlCLEVBQUE7QUFDaEMsSUFBTSxLQUFBLENBQUEsUUFBQSxDQUFTLE9BQU8sTUFBTSxDQUFBLENBQUE7QUFBQSxHQUNoQztBQUFBLEVBRU8sY0FBQSxDQUFBO0FBQUEsRUFDQSxTQUFrQixFQUFDLENBQUE7QUFBQSxFQUVuQixhQUFzQixHQUFBO0FBQ3pCLElBQUssSUFBQSxDQUFBLGNBQUEsR0FBaUIsS0FBSyxtQkFBb0IsRUFBQSxDQUFBO0FBQy9DLElBQUcsR0FBQTtBQUNDLE1BQUEsSUFBQSxDQUFLLE9BQU8sSUFBSyxDQUFBLElBQUksT0FBUSxDQUFBLFVBQUEsQ0FBVyxJQUFJLENBQUMsQ0FBQSxDQUFBO0FBQUEsS0FDakQsUUFBUyxDQUFDLElBQUEsQ0FBSyxJQUFLLEVBQUEsRUFBQTtBQUFBLEdBQ3hCO0FBQUEsRUFFTyxhQUFzQixHQUFBO0FBQ3pCLElBQUssSUFBQSxDQUFBLG9CQUFBLENBQXFCLEtBQUssY0FBYyxDQUFBLENBQUE7QUFDN0MsSUFBVyxLQUFBLE1BQUEsS0FBQSxJQUFTLEtBQUssTUFBUSxFQUFBO0FBQzdCLE1BQUEsSUFBQSxDQUFLLEtBQU0sQ0FBQSxLQUFBLENBQU0sUUFBUyxFQUFBLENBQUUsV0FBVyxDQUFBLENBQUE7QUFBQSxLQUMzQztBQUFBLEdBQ0o7QUFBQTtBQUFBO0FBQUEsRUFLTyxhQUF3QixHQUFBO0FBQzNCLElBQUEsSUFBSSxNQUFTLEdBQUEsQ0FBQSxDQUFBO0FBQ2IsSUFBVyxLQUFBLE1BQUEsS0FBQSxJQUFTLEtBQUssTUFBUSxFQUFBO0FBQzdCLE1BQUEsTUFBQSxJQUFVLE1BQU0sYUFBYyxFQUFBLENBQUE7QUFBQSxLQUNsQztBQUNBLElBQU8sT0FBQSxNQUFBLENBQUE7QUFBQSxHQUNYO0FBQ0o7Ozs7In0=