werift 0.19.0 → 0.19.1

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 (241) hide show
  1. package/lib/common/src/binary.js.map +1 -1
  2. package/lib/common/src/network.js.map +1 -1
  3. package/lib/common/src/promise.js.map +1 -1
  4. package/lib/dtls/src/cipher/const.js +2 -2
  5. package/lib/dtls/src/cipher/const.js.map +1 -1
  6. package/lib/dtls/src/cipher/create.js +10 -10
  7. package/lib/dtls/src/cipher/create.js.map +1 -1
  8. package/lib/dtls/src/cipher/namedCurve.js.map +1 -1
  9. package/lib/dtls/src/cipher/prf.js +1 -1
  10. package/lib/dtls/src/cipher/prf.js.map +1 -1
  11. package/lib/dtls/src/cipher/suites/aead.d.ts +1 -1
  12. package/lib/dtls/src/cipher/suites/aead.js.map +1 -1
  13. package/lib/dtls/src/client.js.map +1 -1
  14. package/lib/dtls/src/context/cipher.js +2 -2
  15. package/lib/dtls/src/context/cipher.js.map +1 -1
  16. package/lib/dtls/src/context/dtls.js.map +1 -1
  17. package/lib/dtls/src/context/srtp.js.map +1 -1
  18. package/lib/dtls/src/flight/client/flight5.js +8 -6
  19. package/lib/dtls/src/flight/client/flight5.js.map +1 -1
  20. package/lib/dtls/src/flight/flight.js +1 -1
  21. package/lib/dtls/src/flight/flight.js.map +1 -1
  22. package/lib/dtls/src/flight/server/flight2.js.map +1 -1
  23. package/lib/dtls/src/flight/server/flight4.js.map +1 -1
  24. package/lib/dtls/src/flight/server/flight6.js.map +1 -1
  25. package/lib/dtls/src/handshake/const.js +1 -1
  26. package/lib/dtls/src/handshake/const.js.map +1 -1
  27. package/lib/dtls/src/handshake/extensions/ellipticCurves.js +1 -1
  28. package/lib/dtls/src/handshake/extensions/ellipticCurves.js.map +1 -1
  29. package/lib/dtls/src/handshake/extensions/extendedMasterSecret.js +1 -1
  30. package/lib/dtls/src/handshake/extensions/extendedMasterSecret.js.map +1 -1
  31. package/lib/dtls/src/handshake/extensions/renegotiationIndication.js +1 -1
  32. package/lib/dtls/src/handshake/extensions/renegotiationIndication.js.map +1 -1
  33. package/lib/dtls/src/handshake/extensions/signature.js +1 -1
  34. package/lib/dtls/src/handshake/extensions/signature.js.map +1 -1
  35. package/lib/dtls/src/handshake/extensions/useSrtp.js +1 -1
  36. package/lib/dtls/src/handshake/extensions/useSrtp.js.map +1 -1
  37. package/lib/dtls/src/handshake/message/alert.js +1 -1
  38. package/lib/dtls/src/handshake/message/alert.js.map +1 -1
  39. package/lib/dtls/src/handshake/message/certificate.js +1 -1
  40. package/lib/dtls/src/handshake/message/certificate.js.map +1 -1
  41. package/lib/dtls/src/handshake/message/changeCipherSpec.js +1 -1
  42. package/lib/dtls/src/handshake/message/changeCipherSpec.js.map +1 -1
  43. package/lib/dtls/src/handshake/message/client/certificateVerify.js +1 -1
  44. package/lib/dtls/src/handshake/message/client/certificateVerify.js.map +1 -1
  45. package/lib/dtls/src/handshake/message/client/hello.js +1 -1
  46. package/lib/dtls/src/handshake/message/client/hello.js.map +1 -1
  47. package/lib/dtls/src/handshake/message/client/keyExchange.js +1 -1
  48. package/lib/dtls/src/handshake/message/client/keyExchange.js.map +1 -1
  49. package/lib/dtls/src/handshake/message/server/certificateRequest.js +1 -1
  50. package/lib/dtls/src/handshake/message/server/certificateRequest.js.map +1 -1
  51. package/lib/dtls/src/handshake/message/server/hello.js +1 -1
  52. package/lib/dtls/src/handshake/message/server/hello.js.map +1 -1
  53. package/lib/dtls/src/handshake/message/server/helloDone.js +1 -1
  54. package/lib/dtls/src/handshake/message/server/helloDone.js.map +1 -1
  55. package/lib/dtls/src/handshake/message/server/helloVerifyRequest.js +1 -1
  56. package/lib/dtls/src/handshake/message/server/helloVerifyRequest.js.map +1 -1
  57. package/lib/dtls/src/handshake/message/server/keyExchange.js +1 -1
  58. package/lib/dtls/src/handshake/message/server/keyExchange.js.map +1 -1
  59. package/lib/dtls/src/handshake/random.js +2 -2
  60. package/lib/dtls/src/handshake/random.js.map +1 -1
  61. package/lib/dtls/src/helper.d.ts +1 -1
  62. package/lib/dtls/src/helper.js.map +1 -1
  63. package/lib/dtls/src/record/const.js +2 -2
  64. package/lib/dtls/src/record/const.js.map +1 -1
  65. package/lib/dtls/src/record/message/fragment.d.ts +1 -1
  66. package/lib/dtls/src/record/message/fragment.js +3 -3
  67. package/lib/dtls/src/record/message/fragment.js.map +1 -1
  68. package/lib/dtls/src/record/message/header.js +2 -2
  69. package/lib/dtls/src/record/message/header.js.map +1 -1
  70. package/lib/dtls/src/record/message/plaintext.js +1 -1
  71. package/lib/dtls/src/record/message/plaintext.js.map +1 -1
  72. package/lib/dtls/src/record/receive.js.map +1 -1
  73. package/lib/dtls/src/server.js.map +1 -1
  74. package/lib/dtls/src/socket.js.map +1 -1
  75. package/lib/dtls/src/transport.js.map +1 -1
  76. package/lib/ice/src/candidate.js +1 -1
  77. package/lib/ice/src/candidate.js.map +1 -1
  78. package/lib/ice/src/dns/lookup.js.map +1 -1
  79. package/lib/ice/src/exceptions.js.map +1 -1
  80. package/lib/ice/src/helper.js.map +1 -1
  81. package/lib/ice/src/ice.d.ts +5 -13
  82. package/lib/ice/src/ice.js +57 -154
  83. package/lib/ice/src/ice.js.map +1 -1
  84. package/lib/ice/src/stun/attributes.js.map +1 -1
  85. package/lib/ice/src/stun/const.d.ts +1 -1
  86. package/lib/ice/src/stun/const.js +2 -2
  87. package/lib/ice/src/stun/const.js.map +1 -1
  88. package/lib/ice/src/stun/message.js +1 -1
  89. package/lib/ice/src/stun/message.js.map +1 -1
  90. package/lib/ice/src/stun/protocol.js.map +1 -1
  91. package/lib/ice/src/stun/transaction.js.map +1 -1
  92. package/lib/ice/src/transport.js +1 -1
  93. package/lib/ice/src/transport.js.map +1 -1
  94. package/lib/ice/src/turn/protocol.js.map +1 -1
  95. package/lib/ice/src/utils.d.ts +1 -0
  96. package/lib/ice/src/utils.js +72 -1
  97. package/lib/ice/src/utils.js.map +1 -1
  98. package/lib/rtp/src/codec/av1.js +1 -1
  99. package/lib/rtp/src/codec/av1.js.map +1 -1
  100. package/lib/rtp/src/codec/h264.js.map +1 -1
  101. package/lib/rtp/src/codec/index.js.map +1 -1
  102. package/lib/rtp/src/codec/opus.js.map +1 -1
  103. package/lib/rtp/src/codec/vp8.js.map +1 -1
  104. package/lib/rtp/src/codec/vp9.js.map +1 -1
  105. package/lib/rtp/src/extra/container/mp4/container.js.map +1 -1
  106. package/lib/rtp/src/extra/container/mp4/exp-golomb.js.map +1 -1
  107. package/lib/rtp/src/extra/container/mp4/h264.js +1 -1
  108. package/lib/rtp/src/extra/container/mp4/h264.js.map +1 -1
  109. package/lib/rtp/src/extra/container/mp4/sps-parser.js +4 -4
  110. package/lib/rtp/src/extra/container/mp4/sps-parser.js.map +1 -1
  111. package/lib/rtp/src/extra/container/ogg/parser.js.map +1 -1
  112. package/lib/rtp/src/extra/container/webm/container.js.map +1 -1
  113. package/lib/rtp/src/extra/container/webm/ebml/ebml.js +1 -1
  114. package/lib/rtp/src/extra/container/webm/ebml/ebml.js.map +1 -1
  115. package/lib/rtp/src/extra/container/webm/ebml/typedArrayUtils.js.map +1 -1
  116. package/lib/rtp/src/extra/processor/depacketizer.js.map +1 -1
  117. package/lib/rtp/src/extra/processor/depacketizerTransformer.js.map +1 -1
  118. package/lib/rtp/src/extra/processor/dtx.js.map +1 -1
  119. package/lib/rtp/src/extra/processor/interface.js.map +1 -1
  120. package/lib/rtp/src/extra/processor/jitterBuffer.js.map +1 -1
  121. package/lib/rtp/src/extra/processor/jitterBufferTransformer.js.map +1 -1
  122. package/lib/rtp/src/extra/processor/lipsync.js.map +1 -1
  123. package/lib/rtp/src/extra/processor/lipsyncCallback.d.ts +1 -1
  124. package/lib/rtp/src/extra/processor/lipsyncCallback.js.map +1 -1
  125. package/lib/rtp/src/extra/processor/mp4.js.map +1 -1
  126. package/lib/rtp/src/extra/processor/mp4Callback.js +1 -1
  127. package/lib/rtp/src/extra/processor/mp4Callback.js.map +1 -1
  128. package/lib/rtp/src/extra/processor/mute.js.map +1 -1
  129. package/lib/rtp/src/extra/processor/muteCallback.js.map +1 -1
  130. package/lib/rtp/src/extra/processor/nack.js.map +1 -1
  131. package/lib/rtp/src/extra/processor/ntpTime.js.map +1 -1
  132. package/lib/rtp/src/extra/processor/rtcpCallback.js.map +1 -1
  133. package/lib/rtp/src/extra/processor/rtpCallback.js.map +1 -1
  134. package/lib/rtp/src/extra/processor/rtpStream.js.map +1 -1
  135. package/lib/rtp/src/extra/processor/rtpTime.js.map +1 -1
  136. package/lib/rtp/src/extra/processor/webm.js.map +1 -1
  137. package/lib/rtp/src/extra/processor/webmCallback.js.map +1 -1
  138. package/lib/rtp/src/extra/processor/webmStream.js.map +1 -1
  139. package/lib/rtp/src/index.d.ts +1 -0
  140. package/lib/rtp/src/rtcp/header.js.map +1 -1
  141. package/lib/rtp/src/rtcp/psfb/fullIntraRequest.js +1 -1
  142. package/lib/rtp/src/rtcp/psfb/fullIntraRequest.js.map +1 -1
  143. package/lib/rtp/src/rtcp/psfb/index.js +1 -1
  144. package/lib/rtp/src/rtcp/psfb/index.js.map +1 -1
  145. package/lib/rtp/src/rtcp/psfb/pictureLossIndication.js +1 -1
  146. package/lib/rtp/src/rtcp/psfb/pictureLossIndication.js.map +1 -1
  147. package/lib/rtp/src/rtcp/psfb/remb.js +1 -1
  148. package/lib/rtp/src/rtcp/psfb/remb.js.map +1 -1
  149. package/lib/rtp/src/rtcp/rr.js +1 -1
  150. package/lib/rtp/src/rtcp/rr.js.map +1 -1
  151. package/lib/rtp/src/rtcp/rtcp.js.map +1 -1
  152. package/lib/rtp/src/rtcp/rtpfb/index.js +1 -1
  153. package/lib/rtp/src/rtcp/rtpfb/index.js.map +1 -1
  154. package/lib/rtp/src/rtcp/rtpfb/nack.js +2 -2
  155. package/lib/rtp/src/rtcp/rtpfb/nack.js.map +1 -1
  156. package/lib/rtp/src/rtcp/rtpfb/twcc.js +3 -3
  157. package/lib/rtp/src/rtcp/rtpfb/twcc.js.map +1 -1
  158. package/lib/rtp/src/rtcp/sdes.js +1 -1
  159. package/lib/rtp/src/rtcp/sdes.js.map +1 -1
  160. package/lib/rtp/src/rtcp/sr.js +1 -1
  161. package/lib/rtp/src/rtcp/sr.js.map +1 -1
  162. package/lib/rtp/src/rtp/headerExtension.js.map +1 -1
  163. package/lib/rtp/src/rtp/red/encoder.js.map +1 -1
  164. package/lib/rtp/src/rtp/red/handler.js.map +1 -1
  165. package/lib/rtp/src/rtp/red/packet.js +0 -1
  166. package/lib/rtp/src/rtp/red/packet.js.map +1 -1
  167. package/lib/rtp/src/rtp/rtp.js +3 -2
  168. package/lib/rtp/src/rtp/rtp.js.map +1 -1
  169. package/lib/rtp/src/srtp/cipher/ctr.d.ts +1 -1
  170. package/lib/rtp/src/srtp/cipher/ctr.js +1 -1
  171. package/lib/rtp/src/srtp/cipher/ctr.js.map +1 -1
  172. package/lib/rtp/src/srtp/cipher/gcm.d.ts +1 -1
  173. package/lib/rtp/src/srtp/cipher/gcm.js +1 -1
  174. package/lib/rtp/src/srtp/cipher/gcm.js.map +1 -1
  175. package/lib/rtp/src/srtp/const.js.map +1 -1
  176. package/lib/rtp/src/srtp/context/context.js +1 -1
  177. package/lib/rtp/src/srtp/context/context.js.map +1 -1
  178. package/lib/rtp/src/srtp/context/srtcp.js.map +1 -1
  179. package/lib/sctp/src/chunk.js +17 -17
  180. package/lib/sctp/src/chunk.js.map +1 -1
  181. package/lib/sctp/src/const.js +2 -2
  182. package/lib/sctp/src/const.js.map +1 -1
  183. package/lib/sctp/src/param.js +5 -5
  184. package/lib/sctp/src/param.js.map +1 -1
  185. package/lib/sctp/src/sctp.js +5 -1
  186. package/lib/sctp/src/sctp.js.map +1 -1
  187. package/lib/sctp/src/transport.js.map +1 -1
  188. package/lib/webrtc/src/dataChannel.d.ts +1 -1
  189. package/lib/webrtc/src/dataChannel.js +1 -1
  190. package/lib/webrtc/src/dataChannel.js.map +1 -1
  191. package/lib/webrtc/src/helper.js.map +1 -1
  192. package/lib/webrtc/src/media/parameters.d.ts +1 -2
  193. package/lib/webrtc/src/media/parameters.js.map +1 -1
  194. package/lib/webrtc/src/media/receiver/nack.js.map +1 -1
  195. package/lib/webrtc/src/media/receiver/receiverTwcc.js.map +1 -1
  196. package/lib/webrtc/src/media/receiver/statistics.js.map +1 -1
  197. package/lib/webrtc/src/media/router.js +4 -2
  198. package/lib/webrtc/src/media/router.js.map +1 -1
  199. package/lib/webrtc/src/media/rtpReceiver.d.ts +1 -1
  200. package/lib/webrtc/src/media/rtpReceiver.js +1 -1
  201. package/lib/webrtc/src/media/rtpReceiver.js.map +1 -1
  202. package/lib/webrtc/src/media/rtpSender.js +1 -1
  203. package/lib/webrtc/src/media/rtpSender.js.map +1 -1
  204. package/lib/webrtc/src/media/rtpTransceiver.js.map +1 -1
  205. package/lib/webrtc/src/media/sender/cumulativeResult.js.map +1 -1
  206. package/lib/webrtc/src/media/sender/senderBWE.js.map +1 -1
  207. package/lib/webrtc/src/media/track.js.map +1 -1
  208. package/lib/webrtc/src/nonstandard/recorder/index.js.map +1 -1
  209. package/lib/webrtc/src/nonstandard/recorder/writer/index.d.ts +1 -1
  210. package/lib/webrtc/src/nonstandard/recorder/writer/index.js.map +1 -1
  211. package/lib/webrtc/src/nonstandard/recorder/writer/webm.d.ts +2 -2
  212. package/lib/webrtc/src/nonstandard/recorder/writer/webm.js +2 -2
  213. package/lib/webrtc/src/nonstandard/recorder/writer/webm.js.map +1 -1
  214. package/lib/webrtc/src/nonstandard/userMedia.js.map +1 -1
  215. package/lib/webrtc/src/peerConnection.d.ts +2 -2
  216. package/lib/webrtc/src/peerConnection.js +11 -8
  217. package/lib/webrtc/src/peerConnection.js.map +1 -1
  218. package/lib/webrtc/src/sdp.js +47 -37
  219. package/lib/webrtc/src/sdp.js.map +1 -1
  220. package/lib/webrtc/src/transport/dtls.js.map +1 -1
  221. package/lib/webrtc/src/transport/ice.js.map +1 -1
  222. package/lib/webrtc/src/transport/sctp.js +9 -7
  223. package/lib/webrtc/src/transport/sctp.js.map +1 -1
  224. package/lib/webrtc/src/utils.js +1 -1
  225. package/lib/webrtc/src/utils.js.map +1 -1
  226. package/package.json +9 -17
  227. package/src/dataChannel.ts +1 -1
  228. package/src/media/parameters.ts +2 -2
  229. package/src/media/receiver/nack.ts +4 -7
  230. package/src/media/router.ts +36 -40
  231. package/src/media/rtpReceiver.ts +12 -15
  232. package/src/media/rtpSender.ts +69 -82
  233. package/src/nonstandard/recorder/writer/index.ts +1 -1
  234. package/src/nonstandard/recorder/writer/webm.ts +3 -3
  235. package/src/nonstandard/userMedia.ts +1 -3
  236. package/src/peerConnection.ts +28 -24
  237. package/src/sdp.ts +49 -55
  238. package/src/transport/dtls.ts +3 -6
  239. package/src/transport/ice.ts +1 -1
  240. package/src/transport/sctp.ts +60 -66
  241. package/src/utils.ts +1 -1
@@ -64,13 +64,13 @@ class Chunk {
64
64
  return data;
65
65
  }
66
66
  }
67
+ exports.Chunk = Chunk;
67
68
  Object.defineProperty(Chunk, "type", {
68
69
  enumerable: true,
69
70
  configurable: true,
70
71
  writable: true,
71
72
  value: -1
72
73
  });
73
- exports.Chunk = Chunk;
74
74
  class BaseInitChunk extends Chunk {
75
75
  constructor(flags = 0, body) {
76
76
  super(flags, body);
@@ -153,37 +153,37 @@ class InitChunk extends BaseInitChunk {
153
153
  return InitChunk.type;
154
154
  }
155
155
  }
156
+ exports.InitChunk = InitChunk;
156
157
  Object.defineProperty(InitChunk, "type", {
157
158
  enumerable: true,
158
159
  configurable: true,
159
160
  writable: true,
160
161
  value: 1
161
162
  });
162
- exports.InitChunk = InitChunk;
163
163
  class InitAckChunk extends BaseInitChunk {
164
164
  get type() {
165
165
  return InitAckChunk.type;
166
166
  }
167
167
  }
168
+ exports.InitAckChunk = InitAckChunk;
168
169
  Object.defineProperty(InitAckChunk, "type", {
169
170
  enumerable: true,
170
171
  configurable: true,
171
172
  writable: true,
172
173
  value: 2
173
174
  });
174
- exports.InitAckChunk = InitAckChunk;
175
175
  class ReConfigChunk extends BaseInitChunk {
176
176
  get type() {
177
177
  return ReConfigChunk.type;
178
178
  }
179
179
  }
180
+ exports.ReConfigChunk = ReConfigChunk;
180
181
  Object.defineProperty(ReConfigChunk, "type", {
181
182
  enumerable: true,
182
183
  configurable: true,
183
184
  writable: true,
184
185
  value: 130
185
186
  });
186
- exports.ReConfigChunk = ReConfigChunk;
187
187
  class ForwardTsnChunk extends Chunk {
188
188
  constructor(flags = 0, body) {
189
189
  super(flags, body);
@@ -229,13 +229,13 @@ class ForwardTsnChunk extends Chunk {
229
229
  ]);
230
230
  }
231
231
  }
232
+ exports.ForwardTsnChunk = ForwardTsnChunk;
232
233
  Object.defineProperty(ForwardTsnChunk, "type", {
233
234
  enumerable: true,
234
235
  configurable: true,
235
236
  writable: true,
236
237
  value: 192
237
238
  });
238
- exports.ForwardTsnChunk = ForwardTsnChunk;
239
239
  class DataChunk extends Chunk {
240
240
  get type() {
241
241
  return DataChunk.type;
@@ -361,37 +361,37 @@ class DataChunk extends Chunk {
361
361
  return data;
362
362
  }
363
363
  }
364
+ exports.DataChunk = DataChunk;
364
365
  Object.defineProperty(DataChunk, "type", {
365
366
  enumerable: true,
366
367
  configurable: true,
367
368
  writable: true,
368
369
  value: 0
369
370
  });
370
- exports.DataChunk = DataChunk;
371
371
  class CookieEchoChunk extends Chunk {
372
372
  get type() {
373
373
  return CookieEchoChunk.type;
374
374
  }
375
375
  }
376
+ exports.CookieEchoChunk = CookieEchoChunk;
376
377
  Object.defineProperty(CookieEchoChunk, "type", {
377
378
  enumerable: true,
378
379
  configurable: true,
379
380
  writable: true,
380
381
  value: 10
381
382
  });
382
- exports.CookieEchoChunk = CookieEchoChunk;
383
383
  class CookieAckChunk extends Chunk {
384
384
  get type() {
385
385
  return CookieAckChunk.type;
386
386
  }
387
387
  }
388
+ exports.CookieAckChunk = CookieAckChunk;
388
389
  Object.defineProperty(CookieAckChunk, "type", {
389
390
  enumerable: true,
390
391
  configurable: true,
391
392
  writable: true,
392
393
  value: 11
393
394
  });
394
- exports.CookieAckChunk = CookieAckChunk;
395
395
  class BaseParamsChunk extends Chunk {
396
396
  constructor(flags = 0, body = undefined) {
397
397
  super(flags, body);
@@ -421,13 +421,13 @@ class AbortChunk extends BaseParamsChunk {
421
421
  return AbortChunk.type;
422
422
  }
423
423
  }
424
+ exports.AbortChunk = AbortChunk;
424
425
  Object.defineProperty(AbortChunk, "type", {
425
426
  enumerable: true,
426
427
  configurable: true,
427
428
  writable: true,
428
429
  value: 6
429
430
  });
430
- exports.AbortChunk = AbortChunk;
431
431
  class ErrorChunk extends BaseParamsChunk {
432
432
  get type() {
433
433
  return ErrorChunk.type;
@@ -439,6 +439,7 @@ class ErrorChunk extends BaseParamsChunk {
439
439
  });
440
440
  }
441
441
  }
442
+ exports.ErrorChunk = ErrorChunk;
442
443
  Object.defineProperty(ErrorChunk, "type", {
443
444
  enumerable: true,
444
445
  configurable: true,
@@ -465,31 +466,30 @@ Object.defineProperty(ErrorChunk, "CODE", {
465
466
  ProtocolViolation: 13,
466
467
  }
467
468
  });
468
- exports.ErrorChunk = ErrorChunk;
469
469
  class HeartbeatChunk extends BaseParamsChunk {
470
470
  get type() {
471
471
  return HeartbeatChunk.type;
472
472
  }
473
473
  }
474
+ exports.HeartbeatChunk = HeartbeatChunk;
474
475
  Object.defineProperty(HeartbeatChunk, "type", {
475
476
  enumerable: true,
476
477
  configurable: true,
477
478
  writable: true,
478
479
  value: 4
479
480
  });
480
- exports.HeartbeatChunk = HeartbeatChunk;
481
481
  class HeartbeatAckChunk extends BaseParamsChunk {
482
482
  get type() {
483
483
  return HeartbeatAckChunk.type;
484
484
  }
485
485
  }
486
+ exports.HeartbeatAckChunk = HeartbeatAckChunk;
486
487
  Object.defineProperty(HeartbeatAckChunk, "type", {
487
488
  enumerable: true,
488
489
  configurable: true,
489
490
  writable: true,
490
491
  value: 5
491
492
  });
492
- exports.HeartbeatAckChunk = HeartbeatAckChunk;
493
493
  // https://tools.ietf.org/html/rfc6525#section-3.1
494
494
  // chunkReconfig represents an SCTP Chunk used to reconfigure streams.
495
495
  //
@@ -511,13 +511,13 @@ class ReconfigChunk extends BaseParamsChunk {
511
511
  return ReconfigChunk.type;
512
512
  }
513
513
  }
514
+ exports.ReconfigChunk = ReconfigChunk;
514
515
  Object.defineProperty(ReconfigChunk, "type", {
515
516
  enumerable: true,
516
517
  configurable: true,
517
518
  writable: true,
518
519
  value: 130
519
520
  });
520
- exports.ReconfigChunk = ReconfigChunk;
521
521
  class SackChunk extends Chunk {
522
522
  get type() {
523
523
  return SackChunk.type;
@@ -591,13 +591,13 @@ class SackChunk extends Chunk {
591
591
  return data;
592
592
  }
593
593
  }
594
+ exports.SackChunk = SackChunk;
594
595
  Object.defineProperty(SackChunk, "type", {
595
596
  enumerable: true,
596
597
  configurable: true,
597
598
  writable: true,
598
599
  value: 3
599
600
  });
600
- exports.SackChunk = SackChunk;
601
601
  class ShutdownChunk extends Chunk {
602
602
  get type() {
603
603
  return ShutdownChunk.type;
@@ -624,37 +624,37 @@ class ShutdownChunk extends Chunk {
624
624
  return Buffer.from(jspack_1.jspack.Pack("!L", [this.cumulativeTsn]));
625
625
  }
626
626
  }
627
+ exports.ShutdownChunk = ShutdownChunk;
627
628
  Object.defineProperty(ShutdownChunk, "type", {
628
629
  enumerable: true,
629
630
  configurable: true,
630
631
  writable: true,
631
632
  value: 7
632
633
  });
633
- exports.ShutdownChunk = ShutdownChunk;
634
634
  class ShutdownAckChunk extends Chunk {
635
635
  get type() {
636
636
  return ShutdownAckChunk.type;
637
637
  }
638
638
  }
639
+ exports.ShutdownAckChunk = ShutdownAckChunk;
639
640
  Object.defineProperty(ShutdownAckChunk, "type", {
640
641
  enumerable: true,
641
642
  configurable: true,
642
643
  writable: true,
643
644
  value: 8
644
645
  });
645
- exports.ShutdownAckChunk = ShutdownAckChunk;
646
646
  class ShutdownCompleteChunk extends Chunk {
647
647
  get type() {
648
648
  return ShutdownCompleteChunk.type;
649
649
  }
650
650
  }
651
+ exports.ShutdownCompleteChunk = ShutdownCompleteChunk;
651
652
  Object.defineProperty(ShutdownCompleteChunk, "type", {
652
653
  enumerable: true,
653
654
  configurable: true,
654
655
  writable: true,
655
656
  value: 14
656
657
  });
657
- exports.ShutdownCompleteChunk = ShutdownCompleteChunk;
658
658
  const CHUNK_CLASSES = [
659
659
  DataChunk,
660
660
  InitChunk,
@@ -1 +1 @@
1
- {"version":3,"file":"chunk.js","sourceRoot":"","sources":["../../../../sctp/src/chunk.ts"],"names":[],"mappings":"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","sourcesContent":["// ID Value Chunk Type\n// ----- ----------\n// 0 - Payload Data (DATA)\n// 1 - Initiation (INIT)\n// 2 - Initiation Acknowledgement (INIT ACK)\n// 3 - Selective Acknowledgement (SACK)\n// 4 - Heartbeat Request (HEARTBEAT)\n// 5 - Heartbeat Acknowledgement (HEARTBEAT ACK)\n// 6 - Abort (ABORT)\n// 7 - Shutdown (SHUTDOWN)\n// 8 - Shutdown Acknowledgement (SHUTDOWN ACK)\n// 9 - Operation Error (ERROR)\n// 10 - State Cookie (COOKIE ECHO)\n// 11 - Cookie Acknowledgement (COOKIE ACK)\n// 12 - Reserved for Explicit Congestion Notification Echo\n// (ECNE)\n// 13 - Reserved for Congestion Window Reduced (CWR)\n// 14 - Shutdown Complete (SHUTDOWN COMPLETE)\n// 15 to 62 - available\n// 63 - reserved for IETF-defined Chunk Extensions\n// 64 to 126 - available\n// 127 - reserved for IETF-defined Chunk Extensions\n// 128 to 190 - available\n// 191 - reserved for IETF-defined Chunk Extensions\n// 192 to 254 - available\n// 255 - reserved for IETF-defined Chunk Extensions\n\nimport { jspack } from \"jspack\";\nconst crc32c = require(\"turbo-crc32/crc32c\");\n\nexport class Chunk {\n public get body(): Buffer | undefined {\n return this._body;\n }\n public set body(value: Buffer | undefined) {\n this._body = value;\n }\n static type = -1;\n\n constructor(\n public flags = 0,\n private _body: Buffer | undefined = Buffer.from(\"\"),\n ) {}\n\n get type() {\n return Chunk.type;\n }\n\n get bytes() {\n if (!this.body) throw new Error();\n\n const data = Buffer.concat([\n Buffer.from(\n jspack.Pack(\"!BBH\", [this.type, this.flags, this.body.length + 4]),\n ),\n this.body,\n ...[...Array(padL(this.body.length))].map(() => Buffer.from(\"\\x00\")),\n ]);\n return data;\n }\n}\n\nexport class BaseInitChunk extends Chunk {\n initiateTag: number;\n advertisedRwnd: number;\n outboundStreams: number;\n inboundStreams: number;\n initialTsn: number;\n params: [number, Buffer][];\n constructor(\n public flags = 0,\n body?: Buffer,\n ) {\n super(flags, body);\n\n if (body) {\n [\n this.initiateTag,\n this.advertisedRwnd,\n this.outboundStreams,\n this.inboundStreams,\n this.initialTsn,\n ] = jspack.Unpack(\"!LLHHL\", body);\n this.params = decodeParams(body.slice(16));\n } else {\n this.initiateTag = 0;\n this.advertisedRwnd = 0;\n this.outboundStreams = 0;\n this.inboundStreams = 0;\n this.initialTsn = 0;\n this.params = [];\n }\n }\n\n get body() {\n let body = Buffer.from(\n jspack.Pack(\"!LLHHL\", [\n this.initiateTag,\n this.advertisedRwnd,\n this.outboundStreams,\n this.inboundStreams,\n this.initialTsn,\n ]),\n );\n body = Buffer.concat([body, encodeParams(this.params)]);\n return body;\n }\n}\n\nexport class InitChunk extends BaseInitChunk {\n static type = 1 as const;\n\n get type() {\n return InitChunk.type;\n }\n}\n\nexport class InitAckChunk extends BaseInitChunk {\n static type = 2 as const;\n\n get type() {\n return InitAckChunk.type;\n }\n}\n\nexport class ReConfigChunk extends BaseInitChunk {\n static type = 130 as const;\n\n get type() {\n return ReConfigChunk.type;\n }\n}\n\nexport class ForwardTsnChunk extends Chunk {\n static type = 192 as const;\n streams: [number, number][] = [];\n cumulativeTsn: number;\n\n constructor(\n public flags = 0,\n body: Buffer | undefined,\n ) {\n super(flags, body);\n\n if (body) {\n this.cumulativeTsn = jspack.Unpack(\"!L\", body)[0];\n let pos = 4;\n while (pos < body.length) {\n this.streams.push(\n jspack.Unpack(\"!HH\", body.slice(pos)) as [number, number],\n );\n pos += 4;\n }\n } else {\n this.cumulativeTsn = 0;\n }\n }\n\n get type() {\n return ForwardTsnChunk.type;\n }\n\n set body(_: Buffer) {}\n\n get body() {\n const body = Buffer.from(jspack.Pack(\"!L\", [this.cumulativeTsn]));\n return Buffer.concat([\n body,\n ...this.streams.map(([id, seq]) =>\n Buffer.from(jspack.Pack(\"!HH\", [id, seq])),\n ),\n ]);\n }\n}\n\nexport class DataChunk extends Chunk {\n static type = 0 as const;\n get type() {\n return DataChunk.type;\n }\n tsn: number = 0;\n streamId: number = 0;\n streamSeqNum: number = 0;\n protocol: number = 0;\n userData: Buffer = Buffer.from(\"\");\n abandoned: boolean = false;\n acked: boolean = false;\n misses: number = 0;\n retransmit: boolean = false;\n sentCount: number = 0;\n bookSize: number = 0;\n expiry?: number;\n maxRetransmits?: number;\n sentTime?: number;\n\n constructor(\n public flags = 0,\n body: Buffer | undefined,\n ) {\n super(flags, body);\n if (body) {\n [this.tsn, this.streamId, this.streamSeqNum, this.protocol] =\n jspack.Unpack(\"!LHHL\", body);\n this.userData = body.slice(12);\n }\n }\n\n get bytes() {\n const length = 16 + this.userData.length;\n let data = Buffer.concat([\n Buffer.from(\n jspack.Pack(\"!BBHLHHL\", [\n this.type,\n this.flags,\n length,\n this.tsn,\n this.streamId,\n this.streamSeqNum,\n this.protocol,\n ]),\n ),\n this.userData,\n ]);\n if (length % 4) {\n data = Buffer.concat([\n data,\n ...[...Array(padL(length))].map(() => Buffer.from(\"\\x00\")),\n ]);\n }\n return data;\n }\n}\n\nexport class CookieEchoChunk extends Chunk {\n static type = 10 as const;\n\n get type() {\n return CookieEchoChunk.type;\n }\n}\n\nexport class CookieAckChunk extends Chunk {\n static type = 11 as const;\n\n get type() {\n return CookieAckChunk.type;\n }\n}\n\nexport class BaseParamsChunk extends Chunk {\n params: [number, Buffer][] = [];\n constructor(\n public flags = 0,\n body: Buffer | undefined = undefined,\n ) {\n super(flags, body);\n if (body) {\n this.params = decodeParams(body);\n }\n }\n\n get body() {\n return encodeParams(this.params);\n }\n}\n\nexport class AbortChunk extends BaseParamsChunk {\n static type = 6 as const;\n\n get type() {\n return AbortChunk.type;\n }\n}\n\nexport class ErrorChunk extends BaseParamsChunk {\n static type = 9 as const;\n static readonly CODE = {\n InvalidStreamIdentifier: 1,\n MissingMandatoryParameter: 2,\n StaleCookieError: 3,\n OutofResource: 4,\n UnresolvableAddress: 5,\n UnrecognizedChunkType: 6,\n InvalidMandatoryParameter: 7,\n UnrecognizedParameters: 8,\n NoUserData: 9,\n CookieReceivedWhileShuttingDown: 10,\n RestartofanAssociationwithNewAddresses: 11,\n UserInitiatedAbort: 12,\n ProtocolViolation: 13,\n } as const;\n\n get type() {\n return ErrorChunk.type;\n }\n\n get descriptions() {\n return this.params.map(([code, body]) => {\n const name = (Object.entries(ErrorChunk.CODE).find(\n ([, num]) => num === code,\n ) || [])[0];\n return { name, body };\n });\n }\n}\n\nexport class HeartbeatChunk extends BaseParamsChunk {\n static type = 4 as const;\n\n get type() {\n return HeartbeatChunk.type;\n }\n}\n\nexport class HeartbeatAckChunk extends BaseParamsChunk {\n static type = 5 as const;\n\n get type() {\n return HeartbeatAckChunk.type;\n }\n}\n\n// https://tools.ietf.org/html/rfc6525#section-3.1\n// chunkReconfig represents an SCTP Chunk used to reconfigure streams.\n//\n// 0 1 2 3\n// 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1\n// +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+\n// | Type = 130 | Chunk Flags | Chunk Length |\n// +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+\n// \\ \\\n// / Re-configuration Parameter /\n// \\ \\\n// +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+\n// \\ \\\n// / Re-configuration Parameter (optional) /\n// \\ \\\n// +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+\nexport class ReconfigChunk extends BaseParamsChunk {\n static type = 130 as const;\n\n get type() {\n return ReconfigChunk.type;\n }\n}\n\nexport class SackChunk extends Chunk {\n static type = 3;\n get type() {\n return SackChunk.type;\n }\n\n gaps: [number, number][] = [];\n duplicates: number[] = [];\n cumulativeTsn = 0;\n advertisedRwnd = 0;\n\n constructor(\n public flags = 0,\n body: Buffer | undefined,\n ) {\n super(flags, body);\n\n if (body) {\n const [cumulativeTsn, advertisedRwnd, nbGaps, nbDuplicates] =\n jspack.Unpack(\"!LLHH\", body);\n this.cumulativeTsn = cumulativeTsn;\n this.advertisedRwnd = advertisedRwnd;\n\n let pos = 12;\n\n [...Array(nbGaps)].forEach(() => {\n this.gaps.push(\n jspack.Unpack(\"!HH\", body.slice(pos)) as [number, number],\n );\n pos += 4;\n });\n\n [...Array(nbDuplicates)].forEach(() => {\n this.duplicates.push(jspack.Unpack(\"!L\", body.slice(pos))[0]);\n pos += 4;\n });\n }\n }\n\n get bytes() {\n const length = 16 + 4 * (this.gaps.length + this.duplicates.length);\n let data = Buffer.from(\n jspack.Pack(\"!BBHLLHH\", [\n this.type,\n this.flags,\n length,\n this.cumulativeTsn,\n this.advertisedRwnd,\n this.gaps.length,\n this.duplicates.length,\n ]),\n );\n data = Buffer.concat([\n data,\n ...this.gaps.map((gap) => Buffer.from(jspack.Pack(\"!HH\", gap))),\n ]);\n data = Buffer.concat([\n data,\n ...this.duplicates.map((tsn) => Buffer.from(jspack.Pack(\"!L\", [tsn]))),\n ]);\n return data;\n }\n}\n\nexport class ShutdownChunk extends Chunk {\n static type = 7;\n get type() {\n return ShutdownChunk.type;\n }\n\n cumulativeTsn = 0;\n\n constructor(\n public flags = 0,\n body: Buffer | undefined,\n ) {\n super(flags, body);\n\n if (body) {\n this.cumulativeTsn = jspack.Unpack(\"!L\", body)[0];\n }\n }\n\n get body() {\n return Buffer.from(jspack.Pack(\"!L\", [this.cumulativeTsn]));\n }\n}\n\nexport class ShutdownAckChunk extends Chunk {\n static type = 8;\n get type() {\n return ShutdownAckChunk.type;\n }\n}\n\nexport class ShutdownCompleteChunk extends Chunk {\n static type = 14;\n get type() {\n return ShutdownCompleteChunk.type;\n }\n}\n\nconst CHUNK_CLASSES: (typeof Chunk)[] = [\n DataChunk,\n InitChunk,\n InitAckChunk,\n SackChunk,\n HeartbeatChunk,\n HeartbeatAckChunk,\n AbortChunk,\n ShutdownChunk,\n ShutdownAckChunk,\n ErrorChunk,\n CookieEchoChunk,\n CookieAckChunk,\n ShutdownCompleteChunk,\n ReconfigChunk,\n ForwardTsnChunk,\n];\n\nexport const CHUNK_BY_TYPE = CHUNK_CLASSES.reduce(\n (acc: { [key: string]: typeof Chunk }, cur) => {\n acc[cur.type] = cur;\n return acc;\n },\n {},\n);\n\nfunction padL(l: number) {\n const m = l % 4;\n return m ? 4 - m : 0;\n}\n\nfunction encodeParams(params: [number, Buffer][]) {\n let body = Buffer.from(\"\");\n let padding = Buffer.from(\"\");\n params.forEach(([type, value]) => {\n const length = value.length + 4;\n body = Buffer.concat([\n body,\n padding,\n Buffer.from(jspack.Pack(\"!HH\", [type, length])),\n value,\n ]);\n padding = Buffer.concat(\n [...Array(padL(length))].map(() => Buffer.from(\"\\x00\")),\n );\n });\n return body;\n}\n\nexport function decodeParams(body: Buffer): [number, Buffer][] {\n const params: [number, Buffer][] = [];\n let pos = 0;\n while (pos <= body.length - 4) {\n const [type, length] = jspack.Unpack(\"!HH\", body.slice(pos));\n params.push([type, body.slice(pos + 4, pos + length)]);\n pos += length + padL(length);\n }\n return params;\n}\n\nexport function parsePacket(data: Buffer): [number, number, number, Chunk[]] {\n if (data.length < 12)\n throw new Error(\"SCTP packet length is less than 12 bytes\");\n\n const [sourcePort, destinationPort, verificationTag] = jspack.Unpack(\n \"!HHL\",\n data,\n );\n\n const checkSum = data.readUInt32LE(8);\n\n const expect = crc32c(\n Buffer.concat([\n data.slice(0, 8),\n Buffer.from(\"\\x00\\x00\\x00\\x00\"),\n data.slice(12),\n ]),\n );\n\n if (checkSum !== expect) throw new Error(\"SCTP packet has invalid checksum\");\n\n const chunks: Chunk[] = [];\n let pos = 12;\n while (pos + 4 <= data.length) {\n const [chunkType, chunkFlags, chunkLength] = jspack.Unpack(\n \"!BBH\",\n data.slice(pos),\n );\n const chunkBody = data.slice(pos + 4, pos + chunkLength);\n const ChunkClass = CHUNK_BY_TYPE[chunkType.toString()];\n if (ChunkClass) {\n chunks.push(new ChunkClass(chunkFlags, chunkBody));\n } else {\n throw new Error(\"unknown\");\n }\n pos += chunkLength + padL(chunkLength);\n }\n return [sourcePort, destinationPort, verificationTag, chunks];\n}\n\nexport function serializePacket(\n sourcePort: number,\n destinationPort: number,\n verificationTag: number,\n chunk: Chunk,\n) {\n const header = Buffer.from(\n jspack.Pack(\"!HHL\", [sourcePort, destinationPort, verificationTag]),\n );\n const body = chunk.bytes;\n\n const checksum: number = crc32c(\n Buffer.concat([header, Buffer.from(\"\\x00\\x00\\x00\\x00\"), body]),\n );\n const checkSumBuf = Buffer.alloc(4);\n checkSumBuf.writeUInt32LE(checksum, 0);\n\n const packet = Buffer.concat([header, checkSumBuf, body]);\n\n return packet;\n}\n"]}
1
+ {"version":3,"file":"chunk.js","sourceRoot":"","sources":["../../../../sctp/src/chunk.ts"],"names":[],"mappings":";AAAA,yBAAyB;AACzB,yBAAyB;AACzB,mCAAmC;AACnC,iCAAiC;AACjC,qDAAqD;AACrD,gDAAgD;AAChD,6CAA6C;AAC7C,yDAAyD;AACzD,6BAA6B;AAC7B,mCAAmC;AACnC,uDAAuD;AACvD,uCAAuC;AACvC,0CAA0C;AAC1C,mDAAmD;AACnD,kEAAkE;AAClE,sBAAsB;AACtB,4DAA4D;AAC5D,qDAAqD;AACrD,yBAAyB;AACzB,0DAA0D;AAC1D,yBAAyB;AACzB,0DAA0D;AAC1D,yBAAyB;AACzB,0DAA0D;AAC1D,yBAAyB;AACzB,0DAA0D;;;AAE1D,mCAAgC;AAChC,MAAM,MAAM,GAAG,OAAO,CAAC,oBAAoB,CAAC,CAAC;AAE7C,MAAa,KAAK;IAChB,IAAW,IAAI;QACb,OAAO,IAAI,CAAC,KAAK,CAAC;IACpB,CAAC;IACD,IAAW,IAAI,CAAC,KAAyB;QACvC,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACrB,CAAC;IAGD,YACS,QAAQ,CAAC,EACR,QAA4B,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC;QADnD;;;;mBAAO,KAAK;WAAI;QAChB;;;;mBAAQ,KAAK;WAAsC;IAClD,CAAC;IAEJ,IAAI,IAAI;QACN,OAAO,KAAK,CAAC,IAAI,CAAC;IACpB,CAAC;IAED,IAAI,KAAK;QACP,IAAI,CAAC,IAAI,CAAC,IAAI;YAAE,MAAM,IAAI,KAAK,EAAE,CAAC;QAElC,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC;YACzB,MAAM,CAAC,IAAI,CACT,eAAM,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CACnE;YACD,IAAI,CAAC,IAAI;YACT,GAAG,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;SACrE,CAAC,CAAC;QACH,OAAO,IAAI,CAAC;IACd,CAAC;;AA7BH,sBA8BC;AAvBQ;;;;WAAO,CAAC,CAAC;EAAL,CAAM;AAyBnB,MAAa,aAAc,SAAQ,KAAK;IAOtC,YAAmB,QAAQ,CAAC,EAAE,IAAa;QACzC,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;QADT;;;;mBAAO,KAAK;WAAI;QAN5B;;;;;WAAoB;QACpB;;;;;WAAuB;QACvB;;;;;WAAwB;QACxB;;;;;WAAuB;QACvB;;;;;WAAmB;QACnB;;;;;WAA2B;QAIzB,IAAI,IAAI,EAAE,CAAC;YACT;gBACE,IAAI,CAAC,WAAW;gBAChB,IAAI,CAAC,cAAc;gBACnB,IAAI,CAAC,eAAe;gBACpB,IAAI,CAAC,cAAc;gBACnB,IAAI,CAAC,UAAU;aAChB,GAAG,eAAM,CAAC,MAAM,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;YAClC,IAAI,CAAC,MAAM,GAAG,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC;QAC7C,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC;YACrB,IAAI,CAAC,cAAc,GAAG,CAAC,CAAC;YACxB,IAAI,CAAC,eAAe,GAAG,CAAC,CAAC;YACzB,IAAI,CAAC,cAAc,GAAG,CAAC,CAAC;YACxB,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC;YACpB,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC;QACnB,CAAC;IACH,CAAC;IAED,IAAI,IAAI;QACN,IAAI,IAAI,GAAG,MAAM,CAAC,IAAI,CACpB,eAAM,CAAC,IAAI,CAAC,QAAQ,EAAE;YACpB,IAAI,CAAC,WAAW;YAChB,IAAI,CAAC,cAAc;YACnB,IAAI,CAAC,eAAe;YACpB,IAAI,CAAC,cAAc;YACnB,IAAI,CAAC,UAAU;SAChB,CAAC,CACH,CAAC;QACF,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QACxD,OAAO,IAAI,CAAC;IACd,CAAC;CACF;AA1CD,sCA0CC;AAED,MAAa,SAAU,SAAQ,aAAa;IAG1C,IAAI,IAAI;QACN,OAAO,SAAS,CAAC,IAAI,CAAC;IACxB,CAAC;;AALH,8BAMC;AALQ;;;;WAAO,CAAU;GAAC;AAO3B,MAAa,YAAa,SAAQ,aAAa;IAG7C,IAAI,IAAI;QACN,OAAO,YAAY,CAAC,IAAI,CAAC;IAC3B,CAAC;;AALH,oCAMC;AALQ;;;;WAAO,CAAU;GAAC;AAO3B,MAAa,aAAc,SAAQ,aAAa;IAG9C,IAAI,IAAI;QACN,OAAO,aAAa,CAAC,IAAI,CAAC;IAC5B,CAAC;;AALH,sCAMC;AALQ;;;;WAAO,GAAY;GAAC;AAO7B,MAAa,eAAgB,SAAQ,KAAK;IAKxC,YAAmB,QAAQ,CAAC,EAAE,IAAwB;QACpD,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;QADT;;;;mBAAO,KAAK;WAAI;QAH5B;;;;mBAA8B,EAAE;WAAC;QACjC;;;;;WAAsB;QAKpB,IAAI,IAAI,EAAE,CAAC;YACT,IAAI,CAAC,aAAa,GAAG,eAAM,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;YAClD,IAAI,GAAG,GAAG,CAAC,CAAC;YACZ,OAAO,GAAG,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;gBACzB,IAAI,CAAC,OAAO,CAAC,IAAI,CACf,eAAM,CAAC,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAqB,CAC1D,CAAC;gBACF,GAAG,IAAI,CAAC,CAAC;YACX,CAAC;QACH,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,aAAa,GAAG,CAAC,CAAC;QACzB,CAAC;IACH,CAAC;IAED,IAAI,IAAI;QACN,OAAO,eAAe,CAAC,IAAI,CAAC;IAC9B,CAAC;IAED,IAAI,IAAI,CAAC,CAAS,IAAG,CAAC;IAEtB,IAAI,IAAI;QACN,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,eAAM,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;QAClE,OAAO,MAAM,CAAC,MAAM,CAAC;YACnB,IAAI;YACJ,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,CAChC,MAAM,CAAC,IAAI,CAAC,eAAM,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC,CAAC,CAC3C;SACF,CAAC,CAAC;IACL,CAAC;;AApCH,0CAqCC;AApCQ;;;;WAAO,GAAY;EAAf,CAAgB;AAsC7B,MAAa,SAAU,SAAQ,KAAK;IAElC,IAAI,IAAI;QACN,OAAO,SAAS,CAAC,IAAI,CAAC;IACxB,CAAC;IAgBD,YAAmB,QAAQ,CAAC,EAAE,IAAwB;QACpD,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;QADT;;;;mBAAO,KAAK;WAAI;QAf5B;;;;mBAAc,CAAC;WAAC;QAChB;;;;mBAAmB,CAAC;WAAC;QACrB;;;;mBAAuB,CAAC;WAAC;QACzB;;;;mBAAmB,CAAC;WAAC;QACrB;;;;mBAAmB,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC;WAAC;QACnC;;;;mBAAqB,KAAK;WAAC;QAC3B;;;;mBAAiB,KAAK;WAAC;QACvB;;;;mBAAiB,CAAC;WAAC;QACnB;;;;mBAAsB,KAAK;WAAC;QAC5B;;;;mBAAoB,CAAC;WAAC;QACtB;;;;mBAAmB,CAAC;WAAC;QACrB;;;;;WAAgB;QAChB;;;;;WAAwB;QACxB;;;;;WAAkB;QAIhB,IAAI,IAAI,EAAE,CAAC;YACT,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,QAAQ,CAAC;gBACzD,eAAM,CAAC,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;YAC/B,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QACjC,CAAC;IACH,CAAC;IAED,IAAI,KAAK;QACP,MAAM,MAAM,GAAG,EAAE,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC;QACzC,IAAI,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC;YACvB,MAAM,CAAC,IAAI,CACT,eAAM,CAAC,IAAI,CAAC,UAAU,EAAE;gBACtB,IAAI,CAAC,IAAI;gBACT,IAAI,CAAC,KAAK;gBACV,MAAM;gBACN,IAAI,CAAC,GAAG;gBACR,IAAI,CAAC,QAAQ;gBACb,IAAI,CAAC,YAAY;gBACjB,IAAI,CAAC,QAAQ;aACd,CAAC,CACH;YACD,IAAI,CAAC,QAAQ;SACd,CAAC,CAAC;QACH,IAAI,MAAM,GAAG,CAAC,EAAE,CAAC;YACf,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC;gBACnB,IAAI;gBACJ,GAAG,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;aAC3D,CAAC,CAAC;QACL,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;;AApDH,8BAqDC;AApDQ;;;;WAAO,CAAU;EAAb,CAAc;AAsD3B,MAAa,eAAgB,SAAQ,KAAK;IAGxC,IAAI,IAAI;QACN,OAAO,eAAe,CAAC,IAAI,CAAC;IAC9B,CAAC;;AALH,0CAMC;AALQ;;;;WAAO,EAAW;GAAC;AAO5B,MAAa,cAAe,SAAQ,KAAK;IAGvC,IAAI,IAAI;QACN,OAAO,cAAc,CAAC,IAAI,CAAC;IAC7B,CAAC;;AALH,wCAMC;AALQ;;;;WAAO,EAAW;GAAC;AAO5B,MAAa,eAAgB,SAAQ,KAAK;IAExC,YAAmB,QAAQ,CAAC,EAAE,OAA2B,SAAS;QAChE,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;QADT;;;;mBAAO,KAAK;WAAI;QAD5B;;;;mBAA6B,EAAE;WAAC;QAG9B,IAAI,IAAI,EAAE,CAAC;YACT,IAAI,CAAC,MAAM,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;QACnC,CAAC;IACH,CAAC;IAED,IAAI,IAAI;QACN,OAAO,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACnC,CAAC;CACF;AAZD,0CAYC;AAED,MAAa,UAAW,SAAQ,eAAe;IAG7C,IAAI,IAAI;QACN,OAAO,UAAU,CAAC,IAAI,CAAC;IACzB,CAAC;;AALH,gCAMC;AALQ;;;;WAAO,CAAU;GAAC;AAO3B,MAAa,UAAW,SAAQ,eAAe;IAkB7C,IAAI,IAAI;QACN,OAAO,UAAU,CAAC,IAAI,CAAC;IACzB,CAAC;IAED,IAAI,YAAY;QACd,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,EAAE;YACtC,MAAM,IAAI,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,IAAI,CAChD,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,KAAK,IAAI,CAC1B,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;YACZ,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;QACxB,CAAC,CAAC,CAAC;IACL,CAAC;;AA7BH,gCA8BC;AA7BQ;;;;WAAO,CAAU;GAAC;AACT;;;;WAAO;QACrB,uBAAuB,EAAE,CAAC;QAC1B,yBAAyB,EAAE,CAAC;QAC5B,gBAAgB,EAAE,CAAC;QACnB,aAAa,EAAE,CAAC;QAChB,mBAAmB,EAAE,CAAC;QACtB,qBAAqB,EAAE,CAAC;QACxB,yBAAyB,EAAE,CAAC;QAC5B,sBAAsB,EAAE,CAAC;QACzB,UAAU,EAAE,CAAC;QACb,+BAA+B,EAAE,EAAE;QACnC,sCAAsC,EAAE,EAAE;QAC1C,kBAAkB,EAAE,EAAE;QACtB,iBAAiB,EAAE,EAAE;KACb;GAAC;AAgBb,MAAa,cAAe,SAAQ,eAAe;IAGjD,IAAI,IAAI;QACN,OAAO,cAAc,CAAC,IAAI,CAAC;IAC7B,CAAC;;AALH,wCAMC;AALQ;;;;WAAO,CAAU;GAAC;AAO3B,MAAa,iBAAkB,SAAQ,eAAe;IAGpD,IAAI,IAAI;QACN,OAAO,iBAAiB,CAAC,IAAI,CAAC;IAChC,CAAC;;AALH,8CAMC;AALQ;;;;WAAO,CAAU;GAAC;AAO3B,kDAAkD;AAClD,sEAAsE;AACtE,EAAE;AACF,iEAAiE;AACjE,mEAAmE;AACnE,oEAAoE;AACpE,oEAAoE;AACpE,oEAAoE;AACpE,oEAAoE;AACpE,oEAAoE;AACpE,oEAAoE;AACpE,oEAAoE;AACpE,oEAAoE;AACpE,oEAAoE;AACpE,oEAAoE;AACpE,oEAAoE;AACpE,MAAa,aAAc,SAAQ,eAAe;IAGhD,IAAI,IAAI;QACN,OAAO,aAAa,CAAC,IAAI,CAAC;IAC5B,CAAC;;AALH,sCAMC;AALQ;;;;WAAO,GAAY;GAAC;AAO7B,MAAa,SAAU,SAAQ,KAAK;IAElC,IAAI,IAAI;QACN,OAAO,SAAS,CAAC,IAAI,CAAC;IACxB,CAAC;IAOD,YAAmB,QAAQ,CAAC,EAAE,IAAwB;QACpD,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;QADT;;;;mBAAO,KAAK;WAAI;QAL5B;;;;mBAA2B,EAAE;WAAC;QAC9B;;;;mBAAuB,EAAE;WAAC;QAC1B;;;;mBAAgB,CAAC;WAAC;QAClB;;;;mBAAiB,CAAC;WAAC;QAKjB,IAAI,IAAI,EAAE,CAAC;YACT,MAAM,CAAC,aAAa,EAAE,cAAc,EAAE,MAAM,EAAE,YAAY,CAAC,GACzD,eAAM,CAAC,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;YAC/B,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;YACnC,IAAI,CAAC,cAAc,GAAG,cAAc,CAAC;YAErC,IAAI,GAAG,GAAG,EAAE,CAAC;YAEb,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE;gBAC9B,IAAI,CAAC,IAAI,CAAC,IAAI,CACZ,eAAM,CAAC,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAqB,CAC1D,CAAC;gBACF,GAAG,IAAI,CAAC,CAAC;YACX,CAAC,CAAC,CAAC;YAEH,CAAC,GAAG,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE;gBACpC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,eAAM,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBAC9D,GAAG,IAAI,CAAC,CAAC;YACX,CAAC,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,IAAI,KAAK;QACP,MAAM,MAAM,GAAG,EAAE,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;QACpE,IAAI,IAAI,GAAG,MAAM,CAAC,IAAI,CACpB,eAAM,CAAC,IAAI,CAAC,UAAU,EAAE;YACtB,IAAI,CAAC,IAAI;YACT,IAAI,CAAC,KAAK;YACV,MAAM;YACN,IAAI,CAAC,aAAa;YAClB,IAAI,CAAC,cAAc;YACnB,IAAI,CAAC,IAAI,CAAC,MAAM;YAChB,IAAI,CAAC,UAAU,CAAC,MAAM;SACvB,CAAC,CACH,CAAC;QACF,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC;YACnB,IAAI;YACJ,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,eAAM,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC;SAChE,CAAC,CAAC;QACH,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC;YACnB,IAAI;YACJ,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,eAAM,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;SACvE,CAAC,CAAC;QACH,OAAO,IAAI,CAAC;IACd,CAAC;;AA1DH,8BA2DC;AA1DQ;;;;WAAO,CAAC;EAAJ,CAAK;AA4DlB,MAAa,aAAc,SAAQ,KAAK;IAEtC,IAAI,IAAI;QACN,OAAO,aAAa,CAAC,IAAI,CAAC;IAC5B,CAAC;IAID,YAAmB,QAAQ,CAAC,EAAE,IAAwB;QACpD,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;QADT;;;;mBAAO,KAAK;WAAI;QAF5B;;;;mBAAgB,CAAC;WAAC;QAKhB,IAAI,IAAI,EAAE,CAAC;YACT,IAAI,CAAC,aAAa,GAAG,eAAM,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;QACpD,CAAC;IACH,CAAC;IAED,IAAI,IAAI;QACN,OAAO,MAAM,CAAC,IAAI,CAAC,eAAM,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;IAC9D,CAAC;;AAlBH,sCAmBC;AAlBQ;;;;WAAO,CAAC;EAAJ,CAAK;AAoBlB,MAAa,gBAAiB,SAAQ,KAAK;IAEzC,IAAI,IAAI;QACN,OAAO,gBAAgB,CAAC,IAAI,CAAC;IAC/B,CAAC;;AAJH,4CAKC;AAJQ;;;;WAAO,CAAC;GAAC;AAMlB,MAAa,qBAAsB,SAAQ,KAAK;IAE9C,IAAI,IAAI;QACN,OAAO,qBAAqB,CAAC,IAAI,CAAC;IACpC,CAAC;;AAJH,sDAKC;AAJQ;;;;WAAO,EAAE;GAAC;AAMnB,MAAM,aAAa,GAAqB;IACtC,SAAS;IACT,SAAS;IACT,YAAY;IACZ,SAAS;IACT,cAAc;IACd,iBAAiB;IACjB,UAAU;IACV,aAAa;IACb,gBAAgB;IAChB,UAAU;IACV,eAAe;IACf,cAAc;IACd,qBAAqB;IACrB,aAAa;IACb,eAAe;CAChB,CAAC;AAEW,QAAA,aAAa,GAAG,aAAa,CAAC,MAAM,CAC/C,CAAC,GAAoC,EAAE,GAAG,EAAE,EAAE;IAC5C,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC;IACpB,OAAO,GAAG,CAAC;AACb,CAAC,EACD,EAAE,CACH,CAAC;AAEF,SAAS,IAAI,CAAC,CAAS;IACrB,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAChB,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACvB,CAAC;AAED,SAAS,YAAY,CAAC,MAA0B;IAC9C,IAAI,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAC3B,IAAI,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAC9B,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,EAAE;QAC/B,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;QAChC,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC;YACnB,IAAI;YACJ,OAAO;YACP,MAAM,CAAC,IAAI,CAAC,eAAM,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC;YAC/C,KAAK;SACN,CAAC,CAAC;QACH,OAAO,GAAG,MAAM,CAAC,MAAM,CACrB,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CACxD,CAAC;IACJ,CAAC,CAAC,CAAC;IACH,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAgB,YAAY,CAAC,IAAY;IACvC,MAAM,MAAM,GAAuB,EAAE,CAAC;IACtC,IAAI,GAAG,GAAG,CAAC,CAAC;IACZ,OAAO,GAAG,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC9B,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,GAAG,eAAM,CAAC,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;QAC7D,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;QACvD,GAAG,IAAI,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC;IAC/B,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AATD,oCASC;AAED,SAAgB,WAAW,CAAC,IAAY;IACtC,IAAI,IAAI,CAAC,MAAM,GAAG,EAAE;QAClB,MAAM,IAAI,KAAK,CAAC,0CAA0C,CAAC,CAAC;IAE9D,MAAM,CAAC,UAAU,EAAE,eAAe,EAAE,eAAe,CAAC,GAAG,eAAM,CAAC,MAAM,CAClE,MAAM,EACN,IAAI,CACL,CAAC;IAEF,MAAM,QAAQ,GAAG,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;IAEtC,MAAM,MAAM,GAAG,MAAM,CACnB,MAAM,CAAC,MAAM,CAAC;QACZ,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;QAChB,MAAM,CAAC,IAAI,CAAC,kBAAkB,CAAC;QAC/B,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;KACf,CAAC,CACH,CAAC;IAEF,IAAI,QAAQ,KAAK,MAAM;QAAE,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAC;IAE7E,MAAM,MAAM,GAAY,EAAE,CAAC;IAC3B,IAAI,GAAG,GAAG,EAAE,CAAC;IACb,OAAO,GAAG,GAAG,CAAC,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;QAC9B,MAAM,CAAC,SAAS,EAAE,UAAU,EAAE,WAAW,CAAC,GAAG,eAAM,CAAC,MAAM,CACxD,MAAM,EACN,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAChB,CAAC;QACF,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,WAAW,CAAC,CAAC;QACzD,MAAM,UAAU,GAAG,qBAAa,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC,CAAC;QACvD,IAAI,UAAU,EAAE,CAAC;YACf,MAAM,CAAC,IAAI,CAAC,IAAI,UAAU,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC,CAAC;QACrD,CAAC;aAAM,CAAC;YACN,MAAM,IAAI,KAAK,CAAC,SAAS,CAAC,CAAC;QAC7B,CAAC;QACD,GAAG,IAAI,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC;IACzC,CAAC;IACD,OAAO,CAAC,UAAU,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,CAAC,CAAC;AAChE,CAAC;AAtCD,kCAsCC;AAED,SAAgB,eAAe,CAC7B,UAAkB,EAClB,eAAuB,EACvB,eAAuB,EACvB,KAAY;IAEZ,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CACxB,eAAM,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,UAAU,EAAE,eAAe,EAAE,eAAe,CAAC,CAAC,CACpE,CAAC;IACF,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC;IAEzB,MAAM,QAAQ,GAAW,MAAM,CAC7B,MAAM,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,kBAAkB,CAAC,EAAE,IAAI,CAAC,CAAC,CAC/D,CAAC;IACF,MAAM,WAAW,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACpC,WAAW,CAAC,aAAa,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;IAEvC,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,WAAW,EAAE,IAAI,CAAC,CAAC,CAAC;IAE1D,OAAO,MAAM,CAAC;AAChB,CAAC;AApBD,0CAoBC","sourcesContent":["// ID Value Chunk Type\n// ----- ----------\n// 0 - Payload Data (DATA)\n// 1 - Initiation (INIT)\n// 2 - Initiation Acknowledgement (INIT ACK)\n// 3 - Selective Acknowledgement (SACK)\n// 4 - Heartbeat Request (HEARTBEAT)\n// 5 - Heartbeat Acknowledgement (HEARTBEAT ACK)\n// 6 - Abort (ABORT)\n// 7 - Shutdown (SHUTDOWN)\n// 8 - Shutdown Acknowledgement (SHUTDOWN ACK)\n// 9 - Operation Error (ERROR)\n// 10 - State Cookie (COOKIE ECHO)\n// 11 - Cookie Acknowledgement (COOKIE ACK)\n// 12 - Reserved for Explicit Congestion Notification Echo\n// (ECNE)\n// 13 - Reserved for Congestion Window Reduced (CWR)\n// 14 - Shutdown Complete (SHUTDOWN COMPLETE)\n// 15 to 62 - available\n// 63 - reserved for IETF-defined Chunk Extensions\n// 64 to 126 - available\n// 127 - reserved for IETF-defined Chunk Extensions\n// 128 to 190 - available\n// 191 - reserved for IETF-defined Chunk Extensions\n// 192 to 254 - available\n// 255 - reserved for IETF-defined Chunk Extensions\n\nimport { jspack } from \"jspack\";\nconst crc32c = require(\"turbo-crc32/crc32c\");\n\nexport class Chunk {\n public get body(): Buffer | undefined {\n return this._body;\n }\n public set body(value: Buffer | undefined) {\n this._body = value;\n }\n static type = -1;\n\n constructor(\n public flags = 0,\n private _body: Buffer | undefined = Buffer.from(\"\"),\n ) {}\n\n get type() {\n return Chunk.type;\n }\n\n get bytes() {\n if (!this.body) throw new Error();\n\n const data = Buffer.concat([\n Buffer.from(\n jspack.Pack(\"!BBH\", [this.type, this.flags, this.body.length + 4]),\n ),\n this.body,\n ...[...Array(padL(this.body.length))].map(() => Buffer.from(\"\\x00\")),\n ]);\n return data;\n }\n}\n\nexport class BaseInitChunk extends Chunk {\n initiateTag: number;\n advertisedRwnd: number;\n outboundStreams: number;\n inboundStreams: number;\n initialTsn: number;\n params: [number, Buffer][];\n constructor(public flags = 0, body?: Buffer) {\n super(flags, body);\n\n if (body) {\n [\n this.initiateTag,\n this.advertisedRwnd,\n this.outboundStreams,\n this.inboundStreams,\n this.initialTsn,\n ] = jspack.Unpack(\"!LLHHL\", body);\n this.params = decodeParams(body.slice(16));\n } else {\n this.initiateTag = 0;\n this.advertisedRwnd = 0;\n this.outboundStreams = 0;\n this.inboundStreams = 0;\n this.initialTsn = 0;\n this.params = [];\n }\n }\n\n get body() {\n let body = Buffer.from(\n jspack.Pack(\"!LLHHL\", [\n this.initiateTag,\n this.advertisedRwnd,\n this.outboundStreams,\n this.inboundStreams,\n this.initialTsn,\n ]),\n );\n body = Buffer.concat([body, encodeParams(this.params)]);\n return body;\n }\n}\n\nexport class InitChunk extends BaseInitChunk {\n static type = 1 as const;\n\n get type() {\n return InitChunk.type;\n }\n}\n\nexport class InitAckChunk extends BaseInitChunk {\n static type = 2 as const;\n\n get type() {\n return InitAckChunk.type;\n }\n}\n\nexport class ReConfigChunk extends BaseInitChunk {\n static type = 130 as const;\n\n get type() {\n return ReConfigChunk.type;\n }\n}\n\nexport class ForwardTsnChunk extends Chunk {\n static type = 192 as const;\n streams: [number, number][] = [];\n cumulativeTsn: number;\n\n constructor(public flags = 0, body: Buffer | undefined) {\n super(flags, body);\n\n if (body) {\n this.cumulativeTsn = jspack.Unpack(\"!L\", body)[0];\n let pos = 4;\n while (pos < body.length) {\n this.streams.push(\n jspack.Unpack(\"!HH\", body.slice(pos)) as [number, number],\n );\n pos += 4;\n }\n } else {\n this.cumulativeTsn = 0;\n }\n }\n\n get type() {\n return ForwardTsnChunk.type;\n }\n\n set body(_: Buffer) {}\n\n get body() {\n const body = Buffer.from(jspack.Pack(\"!L\", [this.cumulativeTsn]));\n return Buffer.concat([\n body,\n ...this.streams.map(([id, seq]) =>\n Buffer.from(jspack.Pack(\"!HH\", [id, seq])),\n ),\n ]);\n }\n}\n\nexport class DataChunk extends Chunk {\n static type = 0 as const;\n get type() {\n return DataChunk.type;\n }\n tsn: number = 0;\n streamId: number = 0;\n streamSeqNum: number = 0;\n protocol: number = 0;\n userData: Buffer = Buffer.from(\"\");\n abandoned: boolean = false;\n acked: boolean = false;\n misses: number = 0;\n retransmit: boolean = false;\n sentCount: number = 0;\n bookSize: number = 0;\n expiry?: number;\n maxRetransmits?: number;\n sentTime?: number;\n\n constructor(public flags = 0, body: Buffer | undefined) {\n super(flags, body);\n if (body) {\n [this.tsn, this.streamId, this.streamSeqNum, this.protocol] =\n jspack.Unpack(\"!LHHL\", body);\n this.userData = body.slice(12);\n }\n }\n\n get bytes() {\n const length = 16 + this.userData.length;\n let data = Buffer.concat([\n Buffer.from(\n jspack.Pack(\"!BBHLHHL\", [\n this.type,\n this.flags,\n length,\n this.tsn,\n this.streamId,\n this.streamSeqNum,\n this.protocol,\n ]),\n ),\n this.userData,\n ]);\n if (length % 4) {\n data = Buffer.concat([\n data,\n ...[...Array(padL(length))].map(() => Buffer.from(\"\\x00\")),\n ]);\n }\n return data;\n }\n}\n\nexport class CookieEchoChunk extends Chunk {\n static type = 10 as const;\n\n get type() {\n return CookieEchoChunk.type;\n }\n}\n\nexport class CookieAckChunk extends Chunk {\n static type = 11 as const;\n\n get type() {\n return CookieAckChunk.type;\n }\n}\n\nexport class BaseParamsChunk extends Chunk {\n params: [number, Buffer][] = [];\n constructor(public flags = 0, body: Buffer | undefined = undefined) {\n super(flags, body);\n if (body) {\n this.params = decodeParams(body);\n }\n }\n\n get body() {\n return encodeParams(this.params);\n }\n}\n\nexport class AbortChunk extends BaseParamsChunk {\n static type = 6 as const;\n\n get type() {\n return AbortChunk.type;\n }\n}\n\nexport class ErrorChunk extends BaseParamsChunk {\n static type = 9 as const;\n static readonly CODE = {\n InvalidStreamIdentifier: 1,\n MissingMandatoryParameter: 2,\n StaleCookieError: 3,\n OutofResource: 4,\n UnresolvableAddress: 5,\n UnrecognizedChunkType: 6,\n InvalidMandatoryParameter: 7,\n UnrecognizedParameters: 8,\n NoUserData: 9,\n CookieReceivedWhileShuttingDown: 10,\n RestartofanAssociationwithNewAddresses: 11,\n UserInitiatedAbort: 12,\n ProtocolViolation: 13,\n } as const;\n\n get type() {\n return ErrorChunk.type;\n }\n\n get descriptions() {\n return this.params.map(([code, body]) => {\n const name = (Object.entries(ErrorChunk.CODE).find(\n ([, num]) => num === code,\n ) || [])[0];\n return { name, body };\n });\n }\n}\n\nexport class HeartbeatChunk extends BaseParamsChunk {\n static type = 4 as const;\n\n get type() {\n return HeartbeatChunk.type;\n }\n}\n\nexport class HeartbeatAckChunk extends BaseParamsChunk {\n static type = 5 as const;\n\n get type() {\n return HeartbeatAckChunk.type;\n }\n}\n\n// https://tools.ietf.org/html/rfc6525#section-3.1\n// chunkReconfig represents an SCTP Chunk used to reconfigure streams.\n//\n// 0 1 2 3\n// 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1\n// +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+\n// | Type = 130 | Chunk Flags | Chunk Length |\n// +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+\n// \\ \\\n// / Re-configuration Parameter /\n// \\ \\\n// +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+\n// \\ \\\n// / Re-configuration Parameter (optional) /\n// \\ \\\n// +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+\nexport class ReconfigChunk extends BaseParamsChunk {\n static type = 130 as const;\n\n get type() {\n return ReconfigChunk.type;\n }\n}\n\nexport class SackChunk extends Chunk {\n static type = 3;\n get type() {\n return SackChunk.type;\n }\n\n gaps: [number, number][] = [];\n duplicates: number[] = [];\n cumulativeTsn = 0;\n advertisedRwnd = 0;\n\n constructor(public flags = 0, body: Buffer | undefined) {\n super(flags, body);\n\n if (body) {\n const [cumulativeTsn, advertisedRwnd, nbGaps, nbDuplicates] =\n jspack.Unpack(\"!LLHH\", body);\n this.cumulativeTsn = cumulativeTsn;\n this.advertisedRwnd = advertisedRwnd;\n\n let pos = 12;\n\n [...Array(nbGaps)].forEach(() => {\n this.gaps.push(\n jspack.Unpack(\"!HH\", body.slice(pos)) as [number, number],\n );\n pos += 4;\n });\n\n [...Array(nbDuplicates)].forEach(() => {\n this.duplicates.push(jspack.Unpack(\"!L\", body.slice(pos))[0]);\n pos += 4;\n });\n }\n }\n\n get bytes() {\n const length = 16 + 4 * (this.gaps.length + this.duplicates.length);\n let data = Buffer.from(\n jspack.Pack(\"!BBHLLHH\", [\n this.type,\n this.flags,\n length,\n this.cumulativeTsn,\n this.advertisedRwnd,\n this.gaps.length,\n this.duplicates.length,\n ]),\n );\n data = Buffer.concat([\n data,\n ...this.gaps.map((gap) => Buffer.from(jspack.Pack(\"!HH\", gap))),\n ]);\n data = Buffer.concat([\n data,\n ...this.duplicates.map((tsn) => Buffer.from(jspack.Pack(\"!L\", [tsn]))),\n ]);\n return data;\n }\n}\n\nexport class ShutdownChunk extends Chunk {\n static type = 7;\n get type() {\n return ShutdownChunk.type;\n }\n\n cumulativeTsn = 0;\n\n constructor(public flags = 0, body: Buffer | undefined) {\n super(flags, body);\n\n if (body) {\n this.cumulativeTsn = jspack.Unpack(\"!L\", body)[0];\n }\n }\n\n get body() {\n return Buffer.from(jspack.Pack(\"!L\", [this.cumulativeTsn]));\n }\n}\n\nexport class ShutdownAckChunk extends Chunk {\n static type = 8;\n get type() {\n return ShutdownAckChunk.type;\n }\n}\n\nexport class ShutdownCompleteChunk extends Chunk {\n static type = 14;\n get type() {\n return ShutdownCompleteChunk.type;\n }\n}\n\nconst CHUNK_CLASSES: (typeof Chunk)[] = [\n DataChunk,\n InitChunk,\n InitAckChunk,\n SackChunk,\n HeartbeatChunk,\n HeartbeatAckChunk,\n AbortChunk,\n ShutdownChunk,\n ShutdownAckChunk,\n ErrorChunk,\n CookieEchoChunk,\n CookieAckChunk,\n ShutdownCompleteChunk,\n ReconfigChunk,\n ForwardTsnChunk,\n];\n\nexport const CHUNK_BY_TYPE = CHUNK_CLASSES.reduce(\n (acc: { [key: string]: typeof Chunk }, cur) => {\n acc[cur.type] = cur;\n return acc;\n },\n {},\n);\n\nfunction padL(l: number) {\n const m = l % 4;\n return m ? 4 - m : 0;\n}\n\nfunction encodeParams(params: [number, Buffer][]) {\n let body = Buffer.from(\"\");\n let padding = Buffer.from(\"\");\n params.forEach(([type, value]) => {\n const length = value.length + 4;\n body = Buffer.concat([\n body,\n padding,\n Buffer.from(jspack.Pack(\"!HH\", [type, length])),\n value,\n ]);\n padding = Buffer.concat(\n [...Array(padL(length))].map(() => Buffer.from(\"\\x00\")),\n );\n });\n return body;\n}\n\nexport function decodeParams(body: Buffer): [number, Buffer][] {\n const params: [number, Buffer][] = [];\n let pos = 0;\n while (pos <= body.length - 4) {\n const [type, length] = jspack.Unpack(\"!HH\", body.slice(pos));\n params.push([type, body.slice(pos + 4, pos + length)]);\n pos += length + padL(length);\n }\n return params;\n}\n\nexport function parsePacket(data: Buffer): [number, number, number, Chunk[]] {\n if (data.length < 12)\n throw new Error(\"SCTP packet length is less than 12 bytes\");\n\n const [sourcePort, destinationPort, verificationTag] = jspack.Unpack(\n \"!HHL\",\n data,\n );\n\n const checkSum = data.readUInt32LE(8);\n\n const expect = crc32c(\n Buffer.concat([\n data.slice(0, 8),\n Buffer.from(\"\\x00\\x00\\x00\\x00\"),\n data.slice(12),\n ]),\n );\n\n if (checkSum !== expect) throw new Error(\"SCTP packet has invalid checksum\");\n\n const chunks: Chunk[] = [];\n let pos = 12;\n while (pos + 4 <= data.length) {\n const [chunkType, chunkFlags, chunkLength] = jspack.Unpack(\n \"!BBH\",\n data.slice(pos),\n );\n const chunkBody = data.slice(pos + 4, pos + chunkLength);\n const ChunkClass = CHUNK_BY_TYPE[chunkType.toString()];\n if (ChunkClass) {\n chunks.push(new ChunkClass(chunkFlags, chunkBody));\n } else {\n throw new Error(\"unknown\");\n }\n pos += chunkLength + padL(chunkLength);\n }\n return [sourcePort, destinationPort, verificationTag, chunks];\n}\n\nexport function serializePacket(\n sourcePort: number,\n destinationPort: number,\n verificationTag: number,\n chunk: Chunk,\n) {\n const header = Buffer.from(\n jspack.Pack(\"!HHL\", [sourcePort, destinationPort, verificationTag]),\n );\n const body = chunk.bytes;\n\n const checksum: number = crc32c(\n Buffer.concat([header, Buffer.from(\"\\x00\\x00\\x00\\x00\"), body]),\n );\n const checkSumBuf = Buffer.alloc(4);\n checkSumBuf.writeUInt32LE(checksum, 0);\n\n const packet = Buffer.concat([header, checkSumBuf, body]);\n\n return packet;\n}\n"]}
@@ -8,7 +8,7 @@ var WEBRTC_PPID;
8
8
  WEBRTC_PPID[WEBRTC_PPID["BINARY"] = 53] = "BINARY";
9
9
  WEBRTC_PPID[WEBRTC_PPID["STRING_EMPTY"] = 56] = "STRING_EMPTY";
10
10
  WEBRTC_PPID[WEBRTC_PPID["BINARY_EMPTY"] = 57] = "BINARY_EMPTY";
11
- })(WEBRTC_PPID = exports.WEBRTC_PPID || (exports.WEBRTC_PPID = {}));
11
+ })(WEBRTC_PPID || (exports.WEBRTC_PPID = WEBRTC_PPID = {}));
12
12
  var SCTP_STATE;
13
13
  (function (SCTP_STATE) {
14
14
  SCTP_STATE[SCTP_STATE["CLOSED"] = 1] = "CLOSED";
@@ -19,5 +19,5 @@ var SCTP_STATE;
19
19
  SCTP_STATE[SCTP_STATE["SHUTDOWN_SENT"] = 6] = "SHUTDOWN_SENT";
20
20
  SCTP_STATE[SCTP_STATE["SHUTDOWN_RECEIVED"] = 7] = "SHUTDOWN_RECEIVED";
21
21
  SCTP_STATE[SCTP_STATE["SHUTDOWN_ACK_SENT"] = 8] = "SHUTDOWN_ACK_SENT";
22
- })(SCTP_STATE = exports.SCTP_STATE || (exports.SCTP_STATE = {}));
22
+ })(SCTP_STATE || (exports.SCTP_STATE = SCTP_STATE = {}));
23
23
  //# sourceMappingURL=const.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"const.js","sourceRoot":"","sources":["../../../../sctp/src/const.ts"],"names":[],"mappings":";;;AAAA,IAAY,WAMX;AAND,WAAY,WAAW;IACrB,8CAAS,CAAA;IACT,kDAAW,CAAA;IACX,kDAAW,CAAA;IACX,8DAAiB,CAAA;IACjB,8DAAiB,CAAA;AACnB,CAAC,EANW,WAAW,GAAX,mBAAW,KAAX,mBAAW,QAMtB;AAED,IAAY,UASX;AATD,WAAY,UAAU;IACpB,+CAAU,CAAA;IACV,yDAAe,CAAA;IACf,6DAAiB,CAAA;IACjB,yDAAe,CAAA;IACf,mEAAoB,CAAA;IACpB,6DAAiB,CAAA;IACjB,qEAAqB,CAAA;IACrB,qEAAqB,CAAA;AACvB,CAAC,EATW,UAAU,GAAV,kBAAU,KAAV,kBAAU,QASrB","sourcesContent":["export enum WEBRTC_PPID {\n DCEP = 50,\n STRING = 51,\n BINARY = 53,\n STRING_EMPTY = 56,\n BINARY_EMPTY = 57,\n}\n\nexport enum SCTP_STATE {\n CLOSED = 1,\n COOKIE_WAIT = 2,\n COOKIE_ECHOED = 3,\n ESTABLISHED = 4,\n SHUTDOWN_PENDING = 5,\n SHUTDOWN_SENT = 6,\n SHUTDOWN_RECEIVED = 7,\n SHUTDOWN_ACK_SENT = 8,\n}\n"]}
1
+ {"version":3,"file":"const.js","sourceRoot":"","sources":["../../../../sctp/src/const.ts"],"names":[],"mappings":";;;AAAA,IAAY,WAMX;AAND,WAAY,WAAW;IACrB,8CAAS,CAAA;IACT,kDAAW,CAAA;IACX,kDAAW,CAAA;IACX,8DAAiB,CAAA;IACjB,8DAAiB,CAAA;AACnB,CAAC,EANW,WAAW,2BAAX,WAAW,QAMtB;AAED,IAAY,UASX;AATD,WAAY,UAAU;IACpB,+CAAU,CAAA;IACV,yDAAe,CAAA;IACf,6DAAiB,CAAA;IACjB,yDAAe,CAAA;IACf,mEAAoB,CAAA;IACpB,6DAAiB,CAAA;IACjB,qEAAqB,CAAA;IACrB,qEAAqB,CAAA;AACvB,CAAC,EATW,UAAU,0BAAV,UAAU,QASrB","sourcesContent":["export enum WEBRTC_PPID {\n DCEP = 50,\n STRING = 51,\n BINARY = 53,\n STRING_EMPTY = 56,\n BINARY_EMPTY = 57,\n}\n\nexport enum SCTP_STATE {\n CLOSED = 1,\n COOKIE_WAIT = 2,\n COOKIE_ECHOED = 3,\n ESTABLISHED = 4,\n SHUTDOWN_PENDING = 5,\n SHUTDOWN_SENT = 6,\n SHUTDOWN_RECEIVED = 7,\n SHUTDOWN_ACK_SENT = 8,\n}\n"]}
@@ -72,13 +72,13 @@ class OutgoingSSNResetRequestParam {
72
72
  return new OutgoingSSNResetRequestParam(requestSequence, responseSequence, lastTsn, stream);
73
73
  }
74
74
  }
75
+ exports.OutgoingSSNResetRequestParam = OutgoingSSNResetRequestParam;
75
76
  Object.defineProperty(OutgoingSSNResetRequestParam, "type", {
76
77
  enumerable: true,
77
78
  configurable: true,
78
79
  writable: true,
79
80
  value: 13
80
81
  }); // Outgoing SSN Reset Request Parameter
81
- exports.OutgoingSSNResetRequestParam = OutgoingSSNResetRequestParam;
82
82
  class StreamAddOutgoingParam {
83
83
  constructor(requestSequence, newStreams) {
84
84
  Object.defineProperty(this, "requestSequence", {
@@ -105,13 +105,13 @@ class StreamAddOutgoingParam {
105
105
  return new StreamAddOutgoingParam(requestSequence, newStreams);
106
106
  }
107
107
  }
108
+ exports.StreamAddOutgoingParam = StreamAddOutgoingParam;
108
109
  Object.defineProperty(StreamAddOutgoingParam, "type", {
109
110
  enumerable: true,
110
111
  configurable: true,
111
112
  writable: true,
112
113
  value: 17
113
114
  }); // Add Outgoing Streams Request Parameter
114
- exports.StreamAddOutgoingParam = StreamAddOutgoingParam;
115
115
  // This parameter is used by the receiver of a Re-configuration Request
116
116
  // Parameter to respond to the request.
117
117
  //
@@ -158,16 +158,16 @@ class ReconfigResponseParam {
158
158
  return new ReconfigResponseParam(requestSequence, result);
159
159
  }
160
160
  }
161
+ exports.ReconfigResponseParam = ReconfigResponseParam;
161
162
  Object.defineProperty(ReconfigResponseParam, "type", {
162
163
  enumerable: true,
163
164
  configurable: true,
164
165
  writable: true,
165
166
  value: 16
166
167
  }); // Re-configuration Response Parameter
167
- exports.ReconfigResponseParam = ReconfigResponseParam;
168
168
  exports.RECONFIG_PARAM_BY_TYPES = {
169
- 13: OutgoingSSNResetRequestParam,
170
- 16: ReconfigResponseParam,
169
+ 13: OutgoingSSNResetRequestParam, // Outgoing SSN Reset Request Parameter
170
+ 16: ReconfigResponseParam, // Re-configuration Response Parameter
171
171
  17: StreamAddOutgoingParam, // Add Outgoing Streams Request Parameter
172
172
  };
173
173
  //# sourceMappingURL=param.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"param.js","sourceRoot":"","sources":["../../../../sctp/src/param.ts"],"names":[],"mappings":"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","sourcesContent":["import { jspack } from \"jspack\";\nimport range from \"lodash/range\";\n\n// This parameter is used by the sender to request the reset of some or\n// all outgoing streams.\n// 0 1 2 3\n// 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1\n// +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+\n// | Parameter Type = 13 | Parameter Length = 16 + 2 * N |\n// +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+\n// | Re-configuration Request Sequence Number |\n// +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+\n// | Re-configuration Response Sequence Number |\n// +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+\n// | Sender's Last Assigned TSN |\n// +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+\n// | Stream Number 1 (optional) | Stream Number 2 (optional) |\n// +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+\n// / ...... /\n// +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+\n// | Stream Number N-1 (optional) | Stream Number N (optional) |\n// +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+\n\nexport class OutgoingSSNResetRequestParam {\n static type = 13; // Outgoing SSN Reset Request Parameter\n\n constructor(\n public requestSequence: number,\n public responseSequence: number,\n public lastTsn: number,\n public streams: number[],\n ) {}\n\n get type() {\n return OutgoingSSNResetRequestParam.type;\n }\n\n get bytes() {\n const data = Buffer.from(\n jspack.Pack(\"!LLL\", [\n this.requestSequence,\n this.responseSequence,\n this.lastTsn,\n ]),\n );\n\n return Buffer.concat([\n data,\n ...this.streams.map((stream) => Buffer.from(jspack.Pack(\"!H\", [stream]))),\n ]);\n }\n\n static parse(data: Buffer) {\n const [requestSequence, responseSequence, lastTsn] = jspack.Unpack(\n \"!LLL\",\n data,\n );\n const stream = range(12, data.length, 2).map(\n (pos) => jspack.Unpack(\"!H\", data.slice(pos))[0],\n );\n\n return new OutgoingSSNResetRequestParam(\n requestSequence,\n responseSequence,\n lastTsn,\n stream,\n );\n }\n}\n\nexport class StreamAddOutgoingParam {\n static type = 17; // Add Outgoing Streams Request Parameter\n\n constructor(\n public requestSequence: number,\n public newStreams: number,\n ) {}\n\n get type() {\n return StreamAddOutgoingParam.type;\n }\n\n get bytes() {\n return Buffer.from(\n jspack.Pack(\"!LHH\", [this.requestSequence, this.newStreams, 0]),\n );\n }\n\n static parse(data: Buffer) {\n const [requestSequence, newStreams] = jspack.Unpack(\"!LHH\", data);\n return new StreamAddOutgoingParam(requestSequence, newStreams);\n }\n}\n\n// This parameter is used by the receiver of a Re-configuration Request\n// Parameter to respond to the request.\n//\n// 0 1 2 3\n// 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1\n// +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+\n// | Parameter Type = 16 | Parameter Length |\n// +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+\n// | Re-configuration Response Sequence Number |\n// +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+\n// | Result |\n// +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+\n// | Sender's Next TSN (optional) |\n// +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+\n// | Receiver's Next TSN (optional) |\n// +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+\n\nexport const reconfigResult = {\n ReconfigResultSuccessPerformed: 1,\n BadSequenceNumber: 5,\n} as const;\ntype ReconfigResult = (typeof reconfigResult)[keyof typeof reconfigResult];\n\nexport class ReconfigResponseParam {\n static type = 16; // Re-configuration Response Parameter\n constructor(\n public responseSequence: number,\n public result: ReconfigResult,\n ) {}\n\n get type() {\n return ReconfigResponseParam.type;\n }\n\n get bytes() {\n return Buffer.from(\n jspack.Pack(\"!LL\", [this.responseSequence, this.result]),\n );\n }\n\n static parse(data: Buffer) {\n const [requestSequence, result] = jspack.Unpack(\"!LL\", data);\n return new ReconfigResponseParam(requestSequence, result as ReconfigResult);\n }\n}\n\nexport type StreamParam =\n | OutgoingSSNResetRequestParam\n | StreamAddOutgoingParam\n | ReconfigResponseParam;\n\nexport type StreamParamType =\n | typeof OutgoingSSNResetRequestParam\n | typeof StreamAddOutgoingParam\n | typeof ReconfigResponseParam;\n\nexport const RECONFIG_PARAM_BY_TYPES: { [type: number]: StreamParamType } = {\n 13: OutgoingSSNResetRequestParam, // Outgoing SSN Reset Request Parameter\n 16: ReconfigResponseParam, // Re-configuration Response Parameter\n 17: StreamAddOutgoingParam, // Add Outgoing Streams Request Parameter\n};\n"]}
1
+ {"version":3,"file":"param.js","sourceRoot":"","sources":["../../../../sctp/src/param.ts"],"names":[],"mappings":";;;;;;AAAA,mCAAgC;AAChC,yDAAiC;AAEjC,uEAAuE;AACvE,wBAAwB;AACxB,iEAAiE;AACjE,mEAAmE;AACnE,oEAAoE;AACpE,oEAAoE;AACpE,oEAAoE;AACpE,oEAAoE;AACpE,oEAAoE;AACpE,oEAAoE;AACpE,oEAAoE;AACpE,oEAAoE;AACpE,oEAAoE;AACpE,oEAAoE;AACpE,oEAAoE;AACpE,oEAAoE;AACpE,oEAAoE;AACpE,oEAAoE;AACpE,oEAAoE;AAEpE,MAAa,4BAA4B;IAGvC,YACS,eAAuB,EACvB,gBAAwB,EACxB,OAAe,EACf,OAAiB;QAHxB;;;;mBAAO,eAAe;WAAQ;QAC9B;;;;mBAAO,gBAAgB;WAAQ;QAC/B;;;;mBAAO,OAAO;WAAQ;QACtB;;;;mBAAO,OAAO;WAAU;IACvB,CAAC;IAEJ,IAAI,IAAI;QACN,OAAO,4BAA4B,CAAC,IAAI,CAAC;IAC3C,CAAC;IAED,IAAI,KAAK;QACP,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CACtB,eAAM,CAAC,IAAI,CAAC,MAAM,EAAE;YAClB,IAAI,CAAC,eAAe;YACpB,IAAI,CAAC,gBAAgB;YACrB,IAAI,CAAC,OAAO;SACb,CAAC,CACH,CAAC;QAEF,OAAO,MAAM,CAAC,MAAM,CAAC;YACnB,IAAI;YACJ,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,eAAM,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;SAC1E,CAAC,CAAC;IACL,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,IAAY;QACvB,MAAM,CAAC,eAAe,EAAE,gBAAgB,EAAE,OAAO,CAAC,GAAG,eAAM,CAAC,MAAM,CAChE,MAAM,EACN,IAAI,CACL,CAAC;QACF,MAAM,MAAM,GAAG,IAAA,eAAK,EAAC,EAAE,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,GAAG,CAC1C,CAAC,GAAG,EAAE,EAAE,CAAC,eAAM,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CACjD,CAAC;QAEF,OAAO,IAAI,4BAA4B,CACrC,eAAe,EACf,gBAAgB,EAChB,OAAO,EACP,MAAM,CACP,CAAC;IACJ,CAAC;;AA5CH,oEA6CC;AA5CQ;;;;WAAO,EAAE;EAAL,CAAM,CAAC,uCAAuC;AA8C3D,MAAa,sBAAsB;IAGjC,YAAmB,eAAuB,EAAS,UAAkB;QAAzD;;;;mBAAO,eAAe;WAAQ;QAAE;;;;mBAAO,UAAU;WAAQ;IAAG,CAAC;IAEzE,IAAI,IAAI;QACN,OAAO,sBAAsB,CAAC,IAAI,CAAC;IACrC,CAAC;IAED,IAAI,KAAK;QACP,OAAO,MAAM,CAAC,IAAI,CAChB,eAAM,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,eAAe,EAAE,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,CAChE,CAAC;IACJ,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,IAAY;QACvB,MAAM,CAAC,eAAe,EAAE,UAAU,CAAC,GAAG,eAAM,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;QAClE,OAAO,IAAI,sBAAsB,CAAC,eAAe,EAAE,UAAU,CAAC,CAAC;IACjE,CAAC;;AAlBH,wDAmBC;AAlBQ;;;;WAAO,EAAE;EAAL,CAAM,CAAC,yCAAyC;AAoB7D,uEAAuE;AACvE,uCAAuC;AACvC,EAAE;AACF,gEAAgE;AAChE,kEAAkE;AAClE,oEAAoE;AACpE,oEAAoE;AACpE,oEAAoE;AACpE,oEAAoE;AACpE,oEAAoE;AACpE,oEAAoE;AACpE,oEAAoE;AACpE,oEAAoE;AACpE,oEAAoE;AACpE,oEAAoE;AACpE,oEAAoE;AAEvD,QAAA,cAAc,GAAG;IAC5B,8BAA8B,EAAE,CAAC;IACjC,iBAAiB,EAAE,CAAC;CACZ,CAAC;AAGX,MAAa,qBAAqB;IAEhC,YAAmB,gBAAwB,EAAS,MAAsB;QAA9D;;;;mBAAO,gBAAgB;WAAQ;QAAE;;;;mBAAO,MAAM;WAAgB;IAAG,CAAC;IAE9E,IAAI,IAAI;QACN,OAAO,qBAAqB,CAAC,IAAI,CAAC;IACpC,CAAC;IAED,IAAI,KAAK;QACP,OAAO,MAAM,CAAC,IAAI,CAChB,eAAM,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,IAAI,CAAC,gBAAgB,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,CACzD,CAAC;IACJ,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,IAAY;QACvB,MAAM,CAAC,eAAe,EAAE,MAAM,CAAC,GAAG,eAAM,CAAC,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;QAC7D,OAAO,IAAI,qBAAqB,CAAC,eAAe,EAAE,MAAwB,CAAC,CAAC;IAC9E,CAAC;;AAjBH,sDAkBC;AAjBQ;;;;WAAO,EAAE;EAAL,CAAM,CAAC,sCAAsC;AA6B7C,QAAA,uBAAuB,GAAwC;IAC1E,EAAE,EAAE,4BAA4B,EAAE,uCAAuC;IACzE,EAAE,EAAE,qBAAqB,EAAE,sCAAsC;IACjE,EAAE,EAAE,sBAAsB,EAAE,yCAAyC;CACtE,CAAC","sourcesContent":["import { jspack } from \"jspack\";\nimport range from \"lodash/range\";\n\n// This parameter is used by the sender to request the reset of some or\n// all outgoing streams.\n// 0 1 2 3\n// 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1\n// +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+\n// | Parameter Type = 13 | Parameter Length = 16 + 2 * N |\n// +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+\n// | Re-configuration Request Sequence Number |\n// +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+\n// | Re-configuration Response Sequence Number |\n// +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+\n// | Sender's Last Assigned TSN |\n// +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+\n// | Stream Number 1 (optional) | Stream Number 2 (optional) |\n// +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+\n// / ...... /\n// +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+\n// | Stream Number N-1 (optional) | Stream Number N (optional) |\n// +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+\n\nexport class OutgoingSSNResetRequestParam {\n static type = 13; // Outgoing SSN Reset Request Parameter\n\n constructor(\n public requestSequence: number,\n public responseSequence: number,\n public lastTsn: number,\n public streams: number[],\n ) {}\n\n get type() {\n return OutgoingSSNResetRequestParam.type;\n }\n\n get bytes() {\n const data = Buffer.from(\n jspack.Pack(\"!LLL\", [\n this.requestSequence,\n this.responseSequence,\n this.lastTsn,\n ]),\n );\n\n return Buffer.concat([\n data,\n ...this.streams.map((stream) => Buffer.from(jspack.Pack(\"!H\", [stream]))),\n ]);\n }\n\n static parse(data: Buffer) {\n const [requestSequence, responseSequence, lastTsn] = jspack.Unpack(\n \"!LLL\",\n data,\n );\n const stream = range(12, data.length, 2).map(\n (pos) => jspack.Unpack(\"!H\", data.slice(pos))[0],\n );\n\n return new OutgoingSSNResetRequestParam(\n requestSequence,\n responseSequence,\n lastTsn,\n stream,\n );\n }\n}\n\nexport class StreamAddOutgoingParam {\n static type = 17; // Add Outgoing Streams Request Parameter\n\n constructor(public requestSequence: number, public newStreams: number) {}\n\n get type() {\n return StreamAddOutgoingParam.type;\n }\n\n get bytes() {\n return Buffer.from(\n jspack.Pack(\"!LHH\", [this.requestSequence, this.newStreams, 0]),\n );\n }\n\n static parse(data: Buffer) {\n const [requestSequence, newStreams] = jspack.Unpack(\"!LHH\", data);\n return new StreamAddOutgoingParam(requestSequence, newStreams);\n }\n}\n\n// This parameter is used by the receiver of a Re-configuration Request\n// Parameter to respond to the request.\n//\n// 0 1 2 3\n// 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1\n// +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+\n// | Parameter Type = 16 | Parameter Length |\n// +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+\n// | Re-configuration Response Sequence Number |\n// +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+\n// | Result |\n// +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+\n// | Sender's Next TSN (optional) |\n// +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+\n// | Receiver's Next TSN (optional) |\n// +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+\n\nexport const reconfigResult = {\n ReconfigResultSuccessPerformed: 1,\n BadSequenceNumber: 5,\n} as const;\ntype ReconfigResult = (typeof reconfigResult)[keyof typeof reconfigResult];\n\nexport class ReconfigResponseParam {\n static type = 16; // Re-configuration Response Parameter\n constructor(public responseSequence: number, public result: ReconfigResult) {}\n\n get type() {\n return ReconfigResponseParam.type;\n }\n\n get bytes() {\n return Buffer.from(\n jspack.Pack(\"!LL\", [this.responseSequence, this.result]),\n );\n }\n\n static parse(data: Buffer) {\n const [requestSequence, result] = jspack.Unpack(\"!LL\", data);\n return new ReconfigResponseParam(requestSequence, result as ReconfigResult);\n }\n}\n\nexport type StreamParam =\n | OutgoingSSNResetRequestParam\n | StreamAddOutgoingParam\n | ReconfigResponseParam;\n\nexport type StreamParamType =\n | typeof OutgoingSSNResetRequestParam\n | typeof StreamAddOutgoingParam\n | typeof ReconfigResponseParam;\n\nexport const RECONFIG_PARAM_BY_TYPES: { [type: number]: StreamParamType } = {\n 13: OutgoingSSNResetRequestParam, // Outgoing SSN Reset Request Parameter\n 16: ReconfigResponseParam, // Re-configuration Response Parameter\n 17: StreamAddOutgoingParam, // Add Outgoing Streams Request Parameter\n};\n"]}
@@ -531,8 +531,10 @@ class SCTP {
531
531
  };
532
532
  }
533
533
  get maxChannels() {
534
- if (this._inboundStreamsCount > 0)
534
+ if (this._inboundStreamsCount > 0) {
535
535
  return Math.min(this._inboundStreamsCount, this._outboundStreamsCount);
536
+ }
537
+ return undefined;
536
538
  }
537
539
  static client(transport, port = 5000) {
538
540
  const sctp = new SCTP(transport, port);
@@ -1293,6 +1295,7 @@ class SCTP {
1293
1295
  this.timer1Cancel();
1294
1296
  this.timer2Cancel();
1295
1297
  this.timer3Cancel();
1298
+ this.timerReconfigCancel();
1296
1299
  this.setConnectionState("closed");
1297
1300
  this.removeAllListeners();
1298
1301
  }
@@ -1310,6 +1313,7 @@ class SCTP {
1310
1313
  clearTimeout(this.timer1Handle);
1311
1314
  clearTimeout(this.timer2Handle);
1312
1315
  clearTimeout(this.timer3Handle);
1316
+ clearTimeout(this.timerReconfigHandle);
1313
1317
  }
1314
1318
  async abort() {
1315
1319
  const abort = new chunk_1.AbortChunk();