werift 0.17.6 → 0.17.7

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 (334) hide show
  1. package/lib/common/src/binary.d.ts +1 -0
  2. package/lib/common/src/binary.js +74 -21
  3. package/lib/common/src/binary.js.map +1 -1
  4. package/lib/common/src/log.js +18 -0
  5. package/lib/common/src/log.js.map +1 -1
  6. package/lib/common/src/network.d.ts +1 -1
  7. package/lib/common/src/network.js +1 -0
  8. package/lib/common/src/network.js.map +1 -1
  9. package/lib/common/src/promise.js +22 -7
  10. package/lib/common/src/promise.js.map +1 -1
  11. package/lib/common/src/type.d.ts +1 -1
  12. package/lib/dtls/src/cipher/const.d.ts +7 -7
  13. package/lib/dtls/src/cipher/key-exchange.js +24 -1
  14. package/lib/dtls/src/cipher/key-exchange.js.map +1 -1
  15. package/lib/dtls/src/cipher/suites/abstract.d.ts +2 -2
  16. package/lib/dtls/src/cipher/suites/abstract.js +36 -2
  17. package/lib/dtls/src/cipher/suites/abstract.js.map +1 -1
  18. package/lib/dtls/src/cipher/suites/aead.js +60 -6
  19. package/lib/dtls/src/cipher/suites/aead.js.map +1 -1
  20. package/lib/dtls/src/client.js +62 -51
  21. package/lib/dtls/src/client.js.map +1 -1
  22. package/lib/dtls/src/context/cipher.js +151 -59
  23. package/lib/dtls/src/context/cipher.js.map +1 -1
  24. package/lib/dtls/src/context/dtls.js +90 -14
  25. package/lib/dtls/src/context/dtls.js.map +1 -1
  26. package/lib/dtls/src/context/srtp.d.ts +1 -1
  27. package/lib/dtls/src/context/srtp.js +8 -0
  28. package/lib/dtls/src/context/srtp.js.map +1 -1
  29. package/lib/dtls/src/context/transport.js +14 -2
  30. package/lib/dtls/src/context/transport.js.map +1 -1
  31. package/lib/dtls/src/flight/client/flight1.js +6 -1
  32. package/lib/dtls/src/flight/client/flight1.js.map +1 -1
  33. package/lib/dtls/src/flight/client/flight5.js +12 -2
  34. package/lib/dtls/src/flight/client/flight5.js.map +1 -1
  35. package/lib/dtls/src/flight/flight.d.ts +1 -1
  36. package/lib/dtls/src/flight/flight.js +42 -7
  37. package/lib/dtls/src/flight/flight.js.map +1 -1
  38. package/lib/dtls/src/flight/server/flight2.js +4 -2
  39. package/lib/dtls/src/flight/server/flight2.js.map +1 -1
  40. package/lib/dtls/src/flight/server/flight4.js +12 -2
  41. package/lib/dtls/src/flight/server/flight4.js.map +1 -1
  42. package/lib/dtls/src/flight/server/flight6.js +6 -1
  43. package/lib/dtls/src/flight/server/flight6.js.map +1 -1
  44. package/lib/dtls/src/handshake/extensions/ellipticCurves.js +27 -7
  45. package/lib/dtls/src/handshake/extensions/ellipticCurves.js.map +1 -1
  46. package/lib/dtls/src/handshake/extensions/extendedMasterSecret.js +6 -1
  47. package/lib/dtls/src/handshake/extensions/extendedMasterSecret.js.map +1 -1
  48. package/lib/dtls/src/handshake/extensions/renegotiationIndication.js +27 -7
  49. package/lib/dtls/src/handshake/extensions/renegotiationIndication.js.map +1 -1
  50. package/lib/dtls/src/handshake/extensions/signature.js +27 -7
  51. package/lib/dtls/src/handshake/extensions/signature.js.map +1 -1
  52. package/lib/dtls/src/handshake/extensions/useSrtp.js +39 -9
  53. package/lib/dtls/src/handshake/extensions/useSrtp.js.map +1 -1
  54. package/lib/dtls/src/handshake/message/alert.js +21 -6
  55. package/lib/dtls/src/handshake/message/alert.js.map +1 -1
  56. package/lib/dtls/src/handshake/message/certificate.js +26 -5
  57. package/lib/dtls/src/handshake/message/certificate.js.map +1 -1
  58. package/lib/dtls/src/handshake/message/changeCipherSpec.js +14 -4
  59. package/lib/dtls/src/handshake/message/changeCipherSpec.js.map +1 -1
  60. package/lib/dtls/src/handshake/message/client/certificateVerify.js +33 -7
  61. package/lib/dtls/src/handshake/message/client/certificateVerify.js.map +1 -1
  62. package/lib/dtls/src/handshake/message/client/hello.js +68 -18
  63. package/lib/dtls/src/handshake/message/client/hello.js.map +1 -1
  64. package/lib/dtls/src/handshake/message/client/keyExchange.js +26 -5
  65. package/lib/dtls/src/handshake/message/client/keyExchange.js.map +1 -1
  66. package/lib/dtls/src/handshake/message/finished.js +18 -2
  67. package/lib/dtls/src/handshake/message/finished.js.map +1 -1
  68. package/lib/dtls/src/handshake/message/server/certificateRequest.js +40 -9
  69. package/lib/dtls/src/handshake/message/server/certificateRequest.js.map +1 -1
  70. package/lib/dtls/src/handshake/message/server/hello.js +60 -14
  71. package/lib/dtls/src/handshake/message/server/hello.js.map +1 -1
  72. package/lib/dtls/src/handshake/message/server/helloDone.js +18 -2
  73. package/lib/dtls/src/handshake/message/server/helloDone.js.map +1 -1
  74. package/lib/dtls/src/handshake/message/server/helloVerifyRequest.js +33 -7
  75. package/lib/dtls/src/handshake/message/server/helloVerifyRequest.js.map +1 -1
  76. package/lib/dtls/src/handshake/message/server/keyExchange.js +75 -19
  77. package/lib/dtls/src/handshake/message/server/keyExchange.js.map +1 -1
  78. package/lib/dtls/src/handshake/random.js +21 -6
  79. package/lib/dtls/src/handshake/random.js.map +1 -1
  80. package/lib/dtls/src/record/builder.d.ts +1 -1
  81. package/lib/dtls/src/record/message/fragment.js +49 -14
  82. package/lib/dtls/src/record/message/fragment.js.map +1 -1
  83. package/lib/dtls/src/record/message/header.js +84 -24
  84. package/lib/dtls/src/record/message/header.js.map +1 -1
  85. package/lib/dtls/src/record/message/plaintext.js +21 -6
  86. package/lib/dtls/src/record/message/plaintext.js.map +1 -1
  87. package/lib/dtls/src/server.js +59 -42
  88. package/lib/dtls/src/server.js.map +1 -1
  89. package/lib/dtls/src/socket.js +153 -64
  90. package/lib/dtls/src/socket.js.map +1 -1
  91. package/lib/dtls/src/transport.js +38 -11
  92. package/lib/dtls/src/transport.js.map +1 -1
  93. package/lib/dtls/src/typings/domain.d.ts +4 -4
  94. package/lib/ice/src/candidate.js +66 -11
  95. package/lib/ice/src/candidate.js.map +1 -1
  96. package/lib/ice/src/dns/lookup.js +12 -1
  97. package/lib/ice/src/dns/lookup.js.map +1 -1
  98. package/lib/ice/src/exceptions.js +27 -2
  99. package/lib/ice/src/exceptions.js.map +1 -1
  100. package/lib/ice/src/helper.d.ts +1 -1
  101. package/lib/ice/src/helper.js +12 -2
  102. package/lib/ice/src/helper.js.map +1 -1
  103. package/lib/ice/src/ice.d.ts +9 -3
  104. package/lib/ice/src/ice.js +401 -154
  105. package/lib/ice/src/ice.js.map +1 -1
  106. package/lib/ice/src/stun/attributes.d.ts +3 -3
  107. package/lib/ice/src/stun/attributes.js +6 -1
  108. package/lib/ice/src/stun/attributes.js.map +1 -1
  109. package/lib/ice/src/stun/message.d.ts +4 -0
  110. package/lib/ice/src/stun/message.js +24 -3
  111. package/lib/ice/src/stun/message.js.map +1 -1
  112. package/lib/ice/src/stun/protocol.js +64 -15
  113. package/lib/ice/src/stun/protocol.js.map +1 -1
  114. package/lib/ice/src/stun/transaction.js +99 -36
  115. package/lib/ice/src/stun/transaction.js.map +1 -1
  116. package/lib/ice/src/transport.js +57 -21
  117. package/lib/ice/src/transport.js.map +1 -1
  118. package/lib/ice/src/turn/protocol.js +176 -40
  119. package/lib/ice/src/turn/protocol.js.map +1 -1
  120. package/lib/ice/src/types/model.d.ts +1 -1
  121. package/lib/rtp/src/codec/av1.d.ts +1 -1
  122. package/lib/rtp/src/codec/av1.js +118 -30
  123. package/lib/rtp/src/codec/av1.js.map +1 -1
  124. package/lib/rtp/src/codec/base.js +8 -0
  125. package/lib/rtp/src/codec/base.js.map +1 -1
  126. package/lib/rtp/src/codec/h264.js +55 -0
  127. package/lib/rtp/src/codec/h264.js.map +1 -1
  128. package/lib/rtp/src/codec/index.d.ts +2 -0
  129. package/lib/rtp/src/codec/index.js +12 -2
  130. package/lib/rtp/src/codec/index.js.map +1 -1
  131. package/lib/rtp/src/codec/opus.js +8 -0
  132. package/lib/rtp/src/codec/opus.js.map +1 -1
  133. package/lib/rtp/src/codec/vp8.js +102 -3
  134. package/lib/rtp/src/codec/vp8.js.map +1 -1
  135. package/lib/rtp/src/codec/vp9.js +164 -7
  136. package/lib/rtp/src/codec/vp9.js.map +1 -1
  137. package/lib/rtp/src/container/ebml/ebml.js +30 -3
  138. package/lib/rtp/src/container/ebml/ebml.js.map +1 -1
  139. package/lib/rtp/src/container/webm.d.ts +1 -1
  140. package/lib/rtp/src/container/webm.js +44 -13
  141. package/lib/rtp/src/container/webm.js.map +1 -1
  142. package/lib/rtp/src/processor/depacketizer.d.ts +16 -8
  143. package/lib/rtp/src/processor/depacketizer.js +59 -22
  144. package/lib/rtp/src/processor/depacketizer.js.map +1 -1
  145. package/lib/rtp/src/processor/depacketizerCallback.js +24 -8
  146. package/lib/rtp/src/processor/depacketizerCallback.js.map +1 -1
  147. package/lib/rtp/src/processor/depacketizerTransformer.d.ts +2 -2
  148. package/lib/rtp/src/processor/depacketizerTransformer.js +6 -0
  149. package/lib/rtp/src/processor/depacketizerTransformer.js.map +1 -1
  150. package/lib/rtp/src/processor/index.d.ts +4 -2
  151. package/lib/rtp/src/processor/index.js +4 -2
  152. package/lib/rtp/src/processor/index.js.map +1 -1
  153. package/lib/rtp/src/processor/interface.d.ts +4 -0
  154. package/lib/rtp/src/processor/interface.js.map +1 -1
  155. package/lib/rtp/src/processor/jitterBuffer.d.ts +2 -1
  156. package/lib/rtp/src/processor/jitterBuffer.js +40 -8
  157. package/lib/rtp/src/processor/jitterBuffer.js.map +1 -1
  158. package/lib/rtp/src/processor/jitterBufferCallback.js +30 -9
  159. package/lib/rtp/src/processor/jitterBufferCallback.js.map +1 -1
  160. package/lib/rtp/src/processor/jitterBufferTransformer.js +12 -1
  161. package/lib/rtp/src/processor/jitterBufferTransformer.js.map +1 -1
  162. package/lib/rtp/src/processor/lipsync.d.ts +42 -0
  163. package/lib/rtp/src/processor/lipsync.js +178 -0
  164. package/lib/rtp/src/processor/lipsync.js.map +1 -0
  165. package/lib/rtp/src/processor/lipsyncCallback.d.ts +10 -0
  166. package/lib/rtp/src/processor/lipsyncCallback.js +59 -0
  167. package/lib/rtp/src/processor/lipsyncCallback.js.map +1 -0
  168. package/lib/rtp/src/processor/ntpTime.d.ts +24 -0
  169. package/lib/rtp/src/processor/ntpTime.js +91 -0
  170. package/lib/rtp/src/processor/ntpTime.js.map +1 -0
  171. package/lib/rtp/src/processor/ntpTimeCallback.d.ts +7 -0
  172. package/lib/rtp/src/processor/ntpTimeCallback.js +36 -0
  173. package/lib/rtp/src/processor/ntpTimeCallback.js.map +1 -0
  174. package/lib/rtp/src/processor/source/index.d.ts +1 -0
  175. package/lib/rtp/src/processor/source/index.js +1 -0
  176. package/lib/rtp/src/processor/source/index.js.map +1 -1
  177. package/lib/rtp/src/processor/source/rtcpCallback.d.ts +12 -0
  178. package/lib/rtp/src/processor/source/rtcpCallback.js +33 -0
  179. package/lib/rtp/src/processor/source/rtcpCallback.js.map +1 -0
  180. package/lib/rtp/src/processor/source/rtpCallback.js +28 -12
  181. package/lib/rtp/src/processor/source/rtpCallback.js.map +1 -1
  182. package/lib/rtp/src/processor/source/rtpStream.js +38 -10
  183. package/lib/rtp/src/processor/source/rtpStream.js.map +1 -1
  184. package/lib/rtp/src/processor/webm.d.ts +11 -4
  185. package/lib/rtp/src/processor/webm.js +169 -46
  186. package/lib/rtp/src/processor/webm.js.map +1 -1
  187. package/lib/rtp/src/processor/webmCallback.d.ts +5 -3
  188. package/lib/rtp/src/processor/webmCallback.js +52 -8
  189. package/lib/rtp/src/processor/webmCallback.js.map +1 -1
  190. package/lib/rtp/src/processor/webmStream.d.ts +2 -2
  191. package/lib/rtp/src/processor/webmStream.js +24 -0
  192. package/lib/rtp/src/processor/webmStream.js.map +1 -1
  193. package/lib/rtp/src/processor_old/base.d.ts +18 -0
  194. package/lib/rtp/src/processor_old/base.js +51 -0
  195. package/lib/rtp/src/processor_old/base.js.map +1 -0
  196. package/lib/rtp/src/processor_old/lipsync.d.ts +30 -0
  197. package/lib/rtp/src/processor_old/lipsync.js +119 -0
  198. package/lib/rtp/src/processor_old/lipsync.js.map +1 -0
  199. package/lib/rtp/src/rtcp/header.js +30 -5
  200. package/lib/rtp/src/rtcp/header.js.map +1 -1
  201. package/lib/rtp/src/rtcp/psfb/fullIntraRequest.d.ts +1 -1
  202. package/lib/rtp/src/rtcp/psfb/fullIntraRequest.js +30 -3
  203. package/lib/rtp/src/rtcp/psfb/fullIntraRequest.js.map +1 -1
  204. package/lib/rtp/src/rtcp/psfb/index.d.ts +1 -1
  205. package/lib/rtp/src/rtcp/psfb/index.js +18 -2
  206. package/lib/rtp/src/rtcp/psfb/index.js.map +1 -1
  207. package/lib/rtp/src/rtcp/psfb/pictureLossIndication.js +30 -3
  208. package/lib/rtp/src/rtcp/psfb/pictureLossIndication.js.map +1 -1
  209. package/lib/rtp/src/rtcp/psfb/remb.js +66 -5
  210. package/lib/rtp/src/rtcp/psfb/remb.js.map +1 -1
  211. package/lib/rtp/src/rtcp/rr.js +68 -4
  212. package/lib/rtp/src/rtcp/rr.js.map +1 -1
  213. package/lib/rtp/src/rtcp/rtcp.d.ts +1 -1
  214. package/lib/rtp/src/rtcp/rtpfb/index.d.ts +1 -1
  215. package/lib/rtp/src/rtcp/rtpfb/index.js +24 -2
  216. package/lib/rtp/src/rtcp/rtpfb/index.js.map +1 -1
  217. package/lib/rtp/src/rtcp/rtpfb/nack.d.ts +5 -0
  218. package/lib/rtp/src/rtcp/rtpfb/nack.js +43 -3
  219. package/lib/rtp/src/rtcp/rtpfb/nack.js.map +1 -1
  220. package/lib/rtp/src/rtcp/rtpfb/twcc.js +154 -11
  221. package/lib/rtp/src/rtcp/rtpfb/twcc.js.map +1 -1
  222. package/lib/rtp/src/rtcp/sdes.js +42 -4
  223. package/lib/rtp/src/rtcp/sdes.js.map +1 -1
  224. package/lib/rtp/src/rtcp/sr.js +56 -5
  225. package/lib/rtp/src/rtcp/sr.js.map +1 -1
  226. package/lib/rtp/src/rtp/red/encoder.js +18 -3
  227. package/lib/rtp/src/rtp/red/encoder.js.map +1 -1
  228. package/lib/rtp/src/rtp/red/handler.js +12 -2
  229. package/lib/rtp/src/rtp/red/handler.js.map +1 -1
  230. package/lib/rtp/src/rtp/red/packet.js +18 -2
  231. package/lib/rtp/src/rtp/red/packet.js.map +1 -1
  232. package/lib/rtp/src/rtp/rtp.d.ts +3 -3
  233. package/lib/rtp/src/rtp/rtp.js +104 -17
  234. package/lib/rtp/src/rtp/rtp.js.map +1 -1
  235. package/lib/rtp/src/srtp/cipher/ctr.js +26 -10
  236. package/lib/rtp/src/srtp/cipher/ctr.js.map +1 -1
  237. package/lib/rtp/src/srtp/cipher/gcm.d.ts +3 -0
  238. package/lib/rtp/src/srtp/cipher/gcm.js +40 -20
  239. package/lib/rtp/src/srtp/cipher/gcm.js.map +1 -1
  240. package/lib/rtp/src/srtp/cipher/index.js +24 -4
  241. package/lib/rtp/src/srtp/cipher/index.js.map +1 -1
  242. package/lib/rtp/src/srtp/const.d.ts +1 -1
  243. package/lib/rtp/src/srtp/context/context.d.ts +1 -1
  244. package/lib/rtp/src/srtp/context/context.js +84 -5
  245. package/lib/rtp/src/srtp/context/context.js.map +1 -1
  246. package/lib/rtp/src/srtp/session.d.ts +2 -2
  247. package/lib/rtp/src/srtp/session.js +24 -1
  248. package/lib/rtp/src/srtp/session.js.map +1 -1
  249. package/lib/rtp/src/srtp/srtcp.js +15 -5
  250. package/lib/rtp/src/srtp/srtcp.js.map +1 -1
  251. package/lib/rtp/src/srtp/srtp.js +15 -5
  252. package/lib/rtp/src/srtp/srtp.js.map +1 -1
  253. package/lib/sctp/src/chunk.js +349 -69
  254. package/lib/sctp/src/chunk.js.map +1 -1
  255. package/lib/sctp/src/helper.d.ts +1 -1
  256. package/lib/sctp/src/param.d.ts +3 -3
  257. package/lib/sctp/src/param.js +66 -11
  258. package/lib/sctp/src/param.js.map +1 -1
  259. package/lib/sctp/src/sctp.d.ts +1 -1
  260. package/lib/sctp/src/sctp.js +479 -138
  261. package/lib/sctp/src/sctp.js.map +1 -1
  262. package/lib/sctp/src/transport.js +31 -10
  263. package/lib/sctp/src/transport.js.map +1 -1
  264. package/lib/webrtc/src/dataChannel.d.ts +1 -1
  265. package/lib/webrtc/src/dataChannel.js +145 -15
  266. package/lib/webrtc/src/dataChannel.js.map +1 -1
  267. package/lib/webrtc/src/helper.js +37 -12
  268. package/lib/webrtc/src/helper.js.map +1 -1
  269. package/lib/webrtc/src/media/parameters.d.ts +1 -1
  270. package/lib/webrtc/src/media/parameters.js +124 -3
  271. package/lib/webrtc/src/media/parameters.js.map +1 -1
  272. package/lib/webrtc/src/media/receiver/nack.d.ts +1 -1
  273. package/lib/webrtc/src/media/receiver/nack.js +85 -33
  274. package/lib/webrtc/src/media/receiver/nack.js.map +1 -1
  275. package/lib/webrtc/src/media/receiver/receiverTwcc.d.ts +1 -1
  276. package/lib/webrtc/src/media/receiver/receiverTwcc.js +42 -6
  277. package/lib/webrtc/src/media/receiver/receiverTwcc.js.map +1 -1
  278. package/lib/webrtc/src/media/receiver/statistics.js +61 -5
  279. package/lib/webrtc/src/media/receiver/statistics.js.map +1 -1
  280. package/lib/webrtc/src/media/router.d.ts +1 -1
  281. package/lib/webrtc/src/media/router.js +108 -83
  282. package/lib/webrtc/src/media/router.js.map +1 -1
  283. package/lib/webrtc/src/media/rtpReceiver.js +188 -33
  284. package/lib/webrtc/src/media/rtpReceiver.js.map +1 -1
  285. package/lib/webrtc/src/media/rtpSender.js +279 -42
  286. package/lib/webrtc/src/media/rtpSender.js.map +1 -1
  287. package/lib/webrtc/src/media/rtpTransceiver.d.ts +2 -2
  288. package/lib/webrtc/src/media/rtpTransceiver.js +102 -18
  289. package/lib/webrtc/src/media/rtpTransceiver.js.map +1 -1
  290. package/lib/webrtc/src/media/sender/cumulativeResult.js +36 -6
  291. package/lib/webrtc/src/media/sender/cumulativeResult.js.map +1 -1
  292. package/lib/webrtc/src/media/sender/senderBWE.js +57 -12
  293. package/lib/webrtc/src/media/sender/senderBWE.js.map +1 -1
  294. package/lib/webrtc/src/media/track.js +135 -24
  295. package/lib/webrtc/src/media/track.js.map +1 -1
  296. package/lib/webrtc/src/nonstandard/recorder/index.js +30 -3
  297. package/lib/webrtc/src/nonstandard/recorder/index.js.map +1 -1
  298. package/lib/webrtc/src/nonstandard/recorder/writer/index.js +12 -2
  299. package/lib/webrtc/src/nonstandard/recorder/writer/index.js.map +1 -1
  300. package/lib/webrtc/src/nonstandard/recorder/writer/webm.js +12 -2
  301. package/lib/webrtc/src/nonstandard/recorder/writer/webm.js.map +1 -1
  302. package/lib/webrtc/src/nonstandard/userMedia.js +158 -56
  303. package/lib/webrtc/src/nonstandard/userMedia.js.map +1 -1
  304. package/lib/webrtc/src/peerConnection.d.ts +2 -2
  305. package/lib/webrtc/src/peerConnection.js +260 -58
  306. package/lib/webrtc/src/peerConnection.js.map +1 -1
  307. package/lib/webrtc/src/sdp.js +287 -24
  308. package/lib/webrtc/src/sdp.js.map +1 -1
  309. package/lib/webrtc/src/transport/dtls.d.ts +3 -3
  310. package/lib/webrtc/src/transport/dtls.js +185 -30
  311. package/lib/webrtc/src/transport/dtls.js.map +1 -1
  312. package/lib/webrtc/src/transport/ice.d.ts +2 -2
  313. package/lib/webrtc/src/transport/ice.js +193 -25
  314. package/lib/webrtc/src/transport/ice.js.map +1 -1
  315. package/lib/webrtc/src/transport/sctp.js +193 -101
  316. package/lib/webrtc/src/transport/sctp.js.map +1 -1
  317. package/lib/webrtc/src/types/domain.d.ts +3 -3
  318. package/lib/webrtc/src/types/util.d.ts +2 -2
  319. package/lib/webrtc/src/utils.js +12 -2
  320. package/lib/webrtc/src/utils.js.map +1 -1
  321. package/package.json +15 -15
  322. package/src/dataChannel.ts +3 -1
  323. package/src/media/receiver/nack.ts +20 -16
  324. package/src/media/rtpReceiver.ts +5 -0
  325. package/src/media/rtpSender.ts +22 -19
  326. package/src/transport/dtls.ts +7 -3
  327. package/src/transport/ice.ts +6 -3
  328. package/src/transport/sctp.ts +3 -1
  329. package/lib/rtp/src/processor/avBuffer.d.ts +0 -36
  330. package/lib/rtp/src/processor/avBuffer.js +0 -107
  331. package/lib/rtp/src/processor/avBuffer.js.map +0 -1
  332. package/lib/rtp/src/processor/avBufferCallback.d.ts +0 -10
  333. package/lib/rtp/src/processor/avBufferCallback.js +0 -27
  334. package/lib/rtp/src/processor/avBufferCallback.js.map +0 -1
@@ -29,6 +29,7 @@ export declare function getBit(bits: number, startIndex: number, length?: number
29
29
  export declare function paddingByte(bits: number): string;
30
30
  export declare function paddingBits(bits: number, expectLength: number): string;
31
31
  export declare function bufferWriter(bytes: number[], values: (number | bigint)[]): Buffer;
32
+ export declare function createBufferWriter(bytes: number[], singleBuffer?: boolean): (values: (number | bigint)[]) => Buffer;
32
33
  export declare function bufferWriterLE(bytes: number[], values: (number | bigint)[]): Buffer;
33
34
  export declare function bufferReader(buf: Buffer, bytes: number[]): any[];
34
35
  export declare class BufferChain {
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.BitStream = exports.buffer2ArrayBuffer = exports.dumpBuffer = exports.BufferChain = exports.bufferReader = exports.bufferWriterLE = exports.bufferWriter = exports.paddingBits = exports.paddingByte = exports.getBit = exports.BitWriter2 = exports.BitWriter = exports.bufferArrayXor = exports.bufferXor = exports.random32 = exports.random16 = void 0;
3
+ exports.BitStream = exports.buffer2ArrayBuffer = exports.dumpBuffer = exports.BufferChain = exports.bufferReader = exports.bufferWriterLE = exports.createBufferWriter = exports.bufferWriter = exports.paddingBits = exports.paddingByte = exports.getBit = exports.BitWriter2 = exports.BitWriter = exports.bufferArrayXor = exports.bufferXor = exports.random32 = exports.random16 = void 0;
4
4
  const crypto_1 = require("crypto");
5
5
  const jspack_1 = require("jspack");
6
6
  function random16() {
@@ -39,8 +39,18 @@ function bufferArrayXor(arr) {
39
39
  exports.bufferArrayXor = bufferArrayXor;
40
40
  class BitWriter {
41
41
  constructor(bitLength) {
42
- this.bitLength = bitLength;
43
- this.value = 0;
42
+ Object.defineProperty(this, "bitLength", {
43
+ enumerable: true,
44
+ configurable: true,
45
+ writable: true,
46
+ value: bitLength
47
+ });
48
+ Object.defineProperty(this, "value", {
49
+ enumerable: true,
50
+ configurable: true,
51
+ writable: true,
52
+ value: 0
53
+ });
44
54
  }
45
55
  set(size, startIndex, value) {
46
56
  value &= (1 << size) - 1;
@@ -62,9 +72,24 @@ class BitWriter2 {
62
72
  constructor(
63
73
  /**Max 32bit */
64
74
  bitLength) {
65
- this.bitLength = bitLength;
66
- this._value = 0n;
67
- this.offset = 0n;
75
+ Object.defineProperty(this, "bitLength", {
76
+ enumerable: true,
77
+ configurable: true,
78
+ writable: true,
79
+ value: bitLength
80
+ });
81
+ Object.defineProperty(this, "_value", {
82
+ enumerable: true,
83
+ configurable: true,
84
+ writable: true,
85
+ value: 0n
86
+ });
87
+ Object.defineProperty(this, "offset", {
88
+ enumerable: true,
89
+ configurable: true,
90
+ writable: true,
91
+ value: 0n
92
+ });
68
93
  if (bitLength > 32) {
69
94
  throw new Error();
70
95
  }
@@ -107,20 +132,27 @@ function paddingBits(bits, expectLength) {
107
132
  }
108
133
  exports.paddingBits = paddingBits;
109
134
  function bufferWriter(bytes, values) {
110
- const length = bytes.reduce((acc, cur) => acc + cur, 0);
111
- const buf = Buffer.alloc(length);
112
- let offset = 0;
113
- values.forEach((v, i) => {
114
- const size = bytes[i];
115
- if (size === 8)
116
- buf.writeBigUInt64BE(v, offset);
117
- else
118
- buf.writeUIntBE(v, offset, size);
119
- offset += size;
120
- });
121
- return buf;
135
+ return createBufferWriter(bytes)(values);
122
136
  }
123
137
  exports.bufferWriter = bufferWriter;
138
+ function createBufferWriter(bytes, singleBuffer) {
139
+ const length = bytes.reduce((acc, cur) => acc + cur, 0);
140
+ const reuseBuffer = singleBuffer ? Buffer.alloc(length) : undefined;
141
+ return (values) => {
142
+ const buf = reuseBuffer || Buffer.alloc(length);
143
+ let offset = 0;
144
+ values.forEach((v, i) => {
145
+ const size = bytes[i];
146
+ if (size === 8)
147
+ buf.writeBigUInt64BE(v, offset);
148
+ else
149
+ buf.writeUIntBE(v, offset, size);
150
+ offset += size;
151
+ });
152
+ return buf;
153
+ };
154
+ }
155
+ exports.createBufferWriter = createBufferWriter;
124
156
  function bufferWriterLE(bytes, values) {
125
157
  const length = bytes.reduce((acc, cur) => acc + cur, 0);
126
158
  const buf = Buffer.alloc(length);
@@ -153,6 +185,12 @@ function bufferReader(buf, bytes) {
153
185
  exports.bufferReader = bufferReader;
154
186
  class BufferChain {
155
187
  constructor(size) {
188
+ Object.defineProperty(this, "buffer", {
189
+ enumerable: true,
190
+ configurable: true,
191
+ writable: true,
192
+ value: void 0
193
+ });
156
194
  this.buffer = Buffer.alloc(size);
157
195
  }
158
196
  writeInt16BE(value, offset) {
@@ -179,9 +217,24 @@ function buffer2ArrayBuffer(buf) {
179
217
  exports.buffer2ArrayBuffer = buffer2ArrayBuffer;
180
218
  class BitStream {
181
219
  constructor(uint8Array) {
182
- this.uint8Array = uint8Array;
183
- this.position = 0;
184
- this.bitsPending = 0;
220
+ Object.defineProperty(this, "uint8Array", {
221
+ enumerable: true,
222
+ configurable: true,
223
+ writable: true,
224
+ value: uint8Array
225
+ });
226
+ Object.defineProperty(this, "position", {
227
+ enumerable: true,
228
+ configurable: true,
229
+ writable: true,
230
+ value: 0
231
+ });
232
+ Object.defineProperty(this, "bitsPending", {
233
+ enumerable: true,
234
+ configurable: true,
235
+ writable: true,
236
+ value: 0
237
+ });
185
238
  }
186
239
  writeBits(bits, value) {
187
240
  if (bits == 0) {
@@ -1 +1 @@
1
- {"version":3,"file":"binary.js","sourceRoot":"","sources":["../../../../common/src/binary.ts"],"names":[],"mappings":"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","sourcesContent":["import { randomBytes } from \"crypto\";\nimport { jspack } from \"jspack\";\n\nexport function random16() {\n return jspack.Unpack(\"!H\", randomBytes(2))[0];\n}\n\nexport function random32() {\n return jspack.Unpack(\"!L\", randomBytes(4))[0];\n}\n\nexport function bufferXor(a: Buffer, b: Buffer): Buffer {\n if (a.length !== b.length) {\n throw new TypeError(\n \"[webrtc-stun] You can not XOR buffers which length are different\"\n );\n }\n\n const length = a.length;\n const buffer = Buffer.allocUnsafe(length);\n\n for (let i = 0; i < length; i++) {\n buffer[i] = a[i] ^ b[i];\n }\n\n return buffer;\n}\n\nexport function bufferArrayXor(arr: Buffer[]): Buffer {\n const length = [...arr]\n .sort((a, b) => a.length - b.length)\n .reverse()[0].length;\n const xored = Buffer.allocUnsafe(length);\n\n for (let i = 0; i < length; i++) {\n xored[i] = 0;\n arr.forEach((buffer) => {\n xored[i] ^= buffer[i] ?? 0;\n });\n }\n\n return xored;\n}\n\nexport class BitWriter {\n value = 0;\n\n constructor(private bitLength: number) {}\n\n set(size: number, startIndex: number, value: number) {\n value &= (1 << size) - 1;\n this.value |= value << (this.bitLength - size - startIndex);\n\n return this;\n }\n\n get buffer() {\n const length = Math.ceil(this.bitLength / 8);\n const buf = Buffer.alloc(length);\n buf.writeUIntBE(this.value, 0, length);\n return buf;\n }\n}\n\nexport class BitWriter2 {\n private _value = 0n;\n offset = 0n;\n\n /**\n * 各valueがオクテットを跨いではならない\n */\n constructor(\n /**Max 32bit */\n private bitLength: number\n ) {\n if (bitLength > 32) {\n throw new Error();\n }\n }\n\n set(value: number, size: number = 1) {\n let value_b = BigInt(value);\n const size_b = BigInt(size);\n\n value_b &= (1n << size_b) - 1n;\n this._value |= value_b << (BigInt(this.bitLength) - size_b - this.offset);\n this.offset += size_b;\n return this;\n }\n\n get value() {\n return Number(this._value);\n }\n\n get buffer() {\n const length = Math.ceil(this.bitLength / 8);\n const buf = Buffer.alloc(length);\n buf.writeUIntBE(this.value, 0, length);\n return buf;\n }\n}\n\nexport function getBit(bits: number, startIndex: number, length: number = 1) {\n let bin = bits.toString(2).split(\"\");\n bin = [...Array(8 - bin.length).fill(\"0\"), ...bin];\n const s = bin.slice(startIndex, startIndex + length).join(\"\");\n const v = parseInt(s, 2);\n return v;\n}\n\nexport function paddingByte(bits: number) {\n const dec = bits.toString(2).split(\"\");\n return [...[...Array(8 - dec.length)].map(() => \"0\"), ...dec].join(\"\");\n}\n\nexport function paddingBits(bits: number, expectLength: number) {\n const dec = bits.toString(2);\n return [...[...Array(expectLength - dec.length)].map(() => \"0\"), ...dec].join(\n \"\"\n );\n}\n\nexport function bufferWriter(bytes: number[], values: (number | bigint)[]) {\n const length = bytes.reduce((acc, cur) => acc + cur, 0);\n const buf = Buffer.alloc(length);\n let offset = 0;\n\n values.forEach((v, i) => {\n const size = bytes[i];\n if (size === 8) buf.writeBigUInt64BE(v as bigint, offset);\n else buf.writeUIntBE(v as number, offset, size);\n\n offset += size;\n });\n return buf;\n}\n\nexport function bufferWriterLE(bytes: number[], values: (number | bigint)[]) {\n const length = bytes.reduce((acc, cur) => acc + cur, 0);\n const buf = Buffer.alloc(length);\n let offset = 0;\n\n values.forEach((v, i) => {\n const size = bytes[i];\n if (size === 8) buf.writeBigUInt64LE(v as bigint, offset);\n else buf.writeUIntLE(v as number, offset, size);\n\n offset += size;\n });\n return buf;\n}\n\nexport function bufferReader(buf: Buffer, bytes: number[]) {\n let offset = 0;\n return bytes.map((v) => {\n let read: number | bigint;\n if (v === 8) {\n read = buf.readBigUInt64BE(offset);\n } else {\n read = buf.readUIntBE(offset, v);\n }\n\n offset += v;\n\n return read as any;\n });\n}\n\nexport class BufferChain {\n buffer: Buffer;\n\n constructor(size: number) {\n this.buffer = Buffer.alloc(size);\n }\n\n writeInt16BE(value: number, offset?: number | undefined) {\n this.buffer.writeInt16BE(value, offset);\n return this;\n }\n\n writeUInt8(value: number, offset?: number | undefined) {\n this.buffer.writeUInt8(value, offset);\n return this;\n }\n}\n\nexport const dumpBuffer = (data: Buffer) =>\n \"0x\" +\n data\n .toString(\"hex\")\n .replace(/(.)(.)/g, \"$1$2 \")\n .split(\" \")\n .filter((s) => s != undefined && s.length > 0)\n .join(\",0x\");\n\nexport function buffer2ArrayBuffer(buf: Buffer) {\n return buf.buffer.slice(buf.byteOffset, buf.byteOffset + buf.byteLength);\n}\n\nexport class BitStream {\n private position = 0;\n private bitsPending = 0;\n\n constructor(public uint8Array: Buffer) {}\n\n writeBits(bits: number, value: number): BitStream {\n if (bits == 0) {\n return this;\n }\n value &= 0xffffffff >>> (32 - bits);\n let bitsConsumed;\n if (this.bitsPending > 0) {\n if (this.bitsPending > bits) {\n this.uint8Array[this.position - 1] |=\n value << (this.bitsPending - bits);\n bitsConsumed = bits;\n this.bitsPending -= bits;\n } else if (this.bitsPending == bits) {\n this.uint8Array[this.position - 1] |= value;\n bitsConsumed = bits;\n this.bitsPending = 0;\n } else {\n this.uint8Array[this.position - 1] |=\n value >> (bits - this.bitsPending);\n // ???\n bitsConsumed = this.bitsPending;\n this.bitsPending = 0;\n }\n } else {\n bitsConsumed = Math.min(8, bits);\n this.bitsPending = 8 - bitsConsumed;\n this.uint8Array[this.position++] =\n (value >> (bits - bitsConsumed)) << this.bitsPending;\n }\n bits -= bitsConsumed;\n if (bits > 0) {\n this.writeBits(bits, value);\n }\n\n return this;\n }\n\n readBits(bits: number, bitBuffer?: number): any {\n if (typeof bitBuffer == \"undefined\") {\n bitBuffer = 0;\n }\n if (bits == 0) {\n return bitBuffer;\n }\n let partial: number;\n let bitsConsumed: number;\n if (this.bitsPending > 0) {\n const byte =\n this.uint8Array[this.position - 1] & (0xff >> (8 - this.bitsPending));\n bitsConsumed = Math.min(this.bitsPending, bits);\n this.bitsPending -= bitsConsumed;\n partial = byte >> this.bitsPending;\n } else {\n bitsConsumed = Math.min(8, bits);\n this.bitsPending = 8 - bitsConsumed;\n partial = this.uint8Array[this.position++] >> this.bitsPending;\n }\n bits -= bitsConsumed;\n bitBuffer = (bitBuffer << bitsConsumed) | partial;\n return bits > 0 ? this.readBits(bits, bitBuffer) : bitBuffer;\n }\n\n seekTo(bitPos: number) {\n this.position = (bitPos / 8) | 0;\n this.bitsPending = bitPos % 8;\n if (this.bitsPending > 0) {\n this.bitsPending = 8 - this.bitsPending;\n this.position++;\n }\n }\n}\n"]}
1
+ {"version":3,"file":"binary.js","sourceRoot":"","sources":["../../../../common/src/binary.ts"],"names":[],"mappings":"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","sourcesContent":["import { randomBytes } from \"crypto\";\nimport { jspack } from \"jspack\";\n\nexport function random16() {\n return jspack.Unpack(\"!H\", randomBytes(2))[0];\n}\n\nexport function random32() {\n return jspack.Unpack(\"!L\", randomBytes(4))[0];\n}\n\nexport function bufferXor(a: Buffer, b: Buffer): Buffer {\n if (a.length !== b.length) {\n throw new TypeError(\n \"[webrtc-stun] You can not XOR buffers which length are different\"\n );\n }\n\n const length = a.length;\n const buffer = Buffer.allocUnsafe(length);\n\n for (let i = 0; i < length; i++) {\n buffer[i] = a[i] ^ b[i];\n }\n\n return buffer;\n}\n\nexport function bufferArrayXor(arr: Buffer[]): Buffer {\n const length = [...arr]\n .sort((a, b) => a.length - b.length)\n .reverse()[0].length;\n const xored = Buffer.allocUnsafe(length);\n\n for (let i = 0; i < length; i++) {\n xored[i] = 0;\n arr.forEach((buffer) => {\n xored[i] ^= buffer[i] ?? 0;\n });\n }\n\n return xored;\n}\n\nexport class BitWriter {\n value = 0;\n\n constructor(private bitLength: number) {}\n\n set(size: number, startIndex: number, value: number) {\n value &= (1 << size) - 1;\n this.value |= value << (this.bitLength - size - startIndex);\n\n return this;\n }\n\n get buffer() {\n const length = Math.ceil(this.bitLength / 8);\n const buf = Buffer.alloc(length);\n buf.writeUIntBE(this.value, 0, length);\n return buf;\n }\n}\n\nexport class BitWriter2 {\n private _value = 0n;\n offset = 0n;\n\n /**\n * 各valueがオクテットを跨いではならない\n */\n constructor(\n /**Max 32bit */\n private bitLength: number\n ) {\n if (bitLength > 32) {\n throw new Error();\n }\n }\n\n set(value: number, size: number = 1) {\n let value_b = BigInt(value);\n const size_b = BigInt(size);\n\n value_b &= (1n << size_b) - 1n;\n this._value |= value_b << (BigInt(this.bitLength) - size_b - this.offset);\n this.offset += size_b;\n return this;\n }\n\n get value() {\n return Number(this._value);\n }\n\n get buffer() {\n const length = Math.ceil(this.bitLength / 8);\n const buf = Buffer.alloc(length);\n buf.writeUIntBE(this.value, 0, length);\n return buf;\n }\n}\n\nexport function getBit(bits: number, startIndex: number, length: number = 1) {\n let bin = bits.toString(2).split(\"\");\n bin = [...Array(8 - bin.length).fill(\"0\"), ...bin];\n const s = bin.slice(startIndex, startIndex + length).join(\"\");\n const v = parseInt(s, 2);\n return v;\n}\n\nexport function paddingByte(bits: number) {\n const dec = bits.toString(2).split(\"\");\n return [...[...Array(8 - dec.length)].map(() => \"0\"), ...dec].join(\"\");\n}\n\nexport function paddingBits(bits: number, expectLength: number) {\n const dec = bits.toString(2);\n return [...[...Array(expectLength - dec.length)].map(() => \"0\"), ...dec].join(\n \"\"\n );\n}\n\nexport function bufferWriter(bytes: number[], values: (number | bigint)[]) {\n return createBufferWriter(bytes)(values);\n}\n\nexport function createBufferWriter(bytes: number[], singleBuffer?: boolean) {\n const length = bytes.reduce((acc, cur) => acc + cur, 0);\n const reuseBuffer = singleBuffer ? Buffer.alloc(length) : undefined;\n\n return (values: (number | bigint)[]) => {\n const buf = reuseBuffer || Buffer.alloc(length);\n let offset = 0;\n\n values.forEach((v, i) => {\n const size = bytes[i];\n if (size === 8) buf.writeBigUInt64BE(v as bigint, offset);\n else buf.writeUIntBE(v as number, offset, size);\n offset += size;\n });\n return buf;\n };\n}\n\nexport function bufferWriterLE(bytes: number[], values: (number | bigint)[]) {\n const length = bytes.reduce((acc, cur) => acc + cur, 0);\n const buf = Buffer.alloc(length);\n let offset = 0;\n\n values.forEach((v, i) => {\n const size = bytes[i];\n if (size === 8) buf.writeBigUInt64LE(v as bigint, offset);\n else buf.writeUIntLE(v as number, offset, size);\n\n offset += size;\n });\n return buf;\n}\n\nexport function bufferReader(buf: Buffer, bytes: number[]) {\n let offset = 0;\n return bytes.map((v) => {\n let read: number | bigint;\n if (v === 8) {\n read = buf.readBigUInt64BE(offset);\n } else {\n read = buf.readUIntBE(offset, v);\n }\n\n offset += v;\n\n return read as any;\n });\n}\n\nexport class BufferChain {\n buffer: Buffer;\n\n constructor(size: number) {\n this.buffer = Buffer.alloc(size);\n }\n\n writeInt16BE(value: number, offset?: number | undefined) {\n this.buffer.writeInt16BE(value, offset);\n return this;\n }\n\n writeUInt8(value: number, offset?: number | undefined) {\n this.buffer.writeUInt8(value, offset);\n return this;\n }\n}\n\nexport const dumpBuffer = (data: Buffer) =>\n \"0x\" +\n data\n .toString(\"hex\")\n .replace(/(.)(.)/g, \"$1$2 \")\n .split(\" \")\n .filter((s) => s != undefined && s.length > 0)\n .join(\",0x\");\n\nexport function buffer2ArrayBuffer(buf: Buffer) {\n return buf.buffer.slice(buf.byteOffset, buf.byteOffset + buf.byteLength);\n}\n\nexport class BitStream {\n private position = 0;\n private bitsPending = 0;\n\n constructor(public uint8Array: Buffer) {}\n\n writeBits(bits: number, value: number): BitStream {\n if (bits == 0) {\n return this;\n }\n value &= 0xffffffff >>> (32 - bits);\n let bitsConsumed;\n if (this.bitsPending > 0) {\n if (this.bitsPending > bits) {\n this.uint8Array[this.position - 1] |=\n value << (this.bitsPending - bits);\n bitsConsumed = bits;\n this.bitsPending -= bits;\n } else if (this.bitsPending == bits) {\n this.uint8Array[this.position - 1] |= value;\n bitsConsumed = bits;\n this.bitsPending = 0;\n } else {\n this.uint8Array[this.position - 1] |=\n value >> (bits - this.bitsPending);\n // ???\n bitsConsumed = this.bitsPending;\n this.bitsPending = 0;\n }\n } else {\n bitsConsumed = Math.min(8, bits);\n this.bitsPending = 8 - bitsConsumed;\n this.uint8Array[this.position++] =\n (value >> (bits - bitsConsumed)) << this.bitsPending;\n }\n bits -= bitsConsumed;\n if (bits > 0) {\n this.writeBits(bits, value);\n }\n\n return this;\n }\n\n readBits(bits: number, bitBuffer?: number): any {\n if (typeof bitBuffer == \"undefined\") {\n bitBuffer = 0;\n }\n if (bits == 0) {\n return bitBuffer;\n }\n let partial: number;\n let bitsConsumed: number;\n if (this.bitsPending > 0) {\n const byte =\n this.uint8Array[this.position - 1] & (0xff >> (8 - this.bitsPending));\n bitsConsumed = Math.min(this.bitsPending, bits);\n this.bitsPending -= bitsConsumed;\n partial = byte >> this.bitsPending;\n } else {\n bitsConsumed = Math.min(8, bits);\n this.bitsPending = 8 - bitsConsumed;\n partial = this.uint8Array[this.position++] >> this.bitsPending;\n }\n bits -= bitsConsumed;\n bitBuffer = (bitBuffer << bitsConsumed) | partial;\n return bits > 0 ? this.readBits(bits, bitBuffer) : bitBuffer;\n }\n\n seekTo(bitPos: number) {\n this.position = (bitPos / 8) | 0;\n this.bitsPending = bitPos % 8;\n if (this.bitsPending > 0) {\n this.bitsPending = 8 - this.bitsPending;\n this.position++;\n }\n }\n}\n"]}
@@ -4,6 +4,24 @@ exports.WeriftError = void 0;
4
4
  class WeriftError extends Error {
5
5
  constructor(props) {
6
6
  super(props.message);
7
+ Object.defineProperty(this, "message", {
8
+ enumerable: true,
9
+ configurable: true,
10
+ writable: true,
11
+ value: void 0
12
+ });
13
+ Object.defineProperty(this, "payload", {
14
+ enumerable: true,
15
+ configurable: true,
16
+ writable: true,
17
+ value: void 0
18
+ });
19
+ Object.defineProperty(this, "path", {
20
+ enumerable: true,
21
+ configurable: true,
22
+ writable: true,
23
+ value: void 0
24
+ });
7
25
  }
8
26
  toJSON() {
9
27
  return {
@@ -1 +1 @@
1
- {"version":3,"file":"log.js","sourceRoot":"","sources":["../../../../common/src/log.ts"],"names":[],"mappings":";;;AAAA,MAAa,WAAY,SAAQ,KAAK;IAKpC,YAAY,KAAwD;QAClE,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IACvB,CAAC;IAED,MAAM;QACJ,OAAO;YACL,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YACjD,IAAI,EAAE,IAAI,CAAC,IAAI;SAChB,CAAC;IACJ,CAAC;CACF;AAhBD,kCAgBC","sourcesContent":["export class WeriftError extends Error {\n message!: string;\n payload?: object;\n path?: string;\n\n constructor(props: Pick<WeriftError, \"message\" | \"payload\" | \"path\">) {\n super(props.message);\n }\n\n toJSON() {\n return {\n message: this.message,\n payload: JSON.parse(JSON.stringify(this.payload)),\n path: this.path,\n };\n }\n}\n"]}
1
+ {"version":3,"file":"log.js","sourceRoot":"","sources":["../../../../common/src/log.ts"],"names":[],"mappings":";;;AAAA,MAAa,WAAY,SAAQ,KAAK;IAKpC,YAAY,KAAwD;QAClE,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QALvB;;;;;WAAiB;QACjB;;;;;WAAiB;QACjB;;;;;WAAc;IAId,CAAC;IAED,MAAM;QACJ,OAAO;YACL,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YACjD,IAAI,EAAE,IAAI,CAAC,IAAI;SAChB,CAAC;IACJ,CAAC;CACF;AAhBD,kCAgBC","sourcesContent":["export class WeriftError extends Error {\n message!: string;\n payload?: object;\n path?: string;\n\n constructor(props: Pick<WeriftError, \"message\" | \"payload\" | \"path\">) {\n super(props.message);\n }\n\n toJSON() {\n return {\n message: this.message,\n payload: JSON.parse(JSON.stringify(this.payload)),\n path: this.path,\n };\n }\n}\n"]}
@@ -1,6 +1,6 @@
1
1
  /// <reference types="node" />
2
2
  import { SocketType } from "dgram";
3
- export declare type InterfaceAddresses = {
3
+ export type InterfaceAddresses = {
4
4
  [K in SocketType]?: string;
5
5
  };
6
6
  export declare const interfaceAddress: (type: SocketType, interfaceAddresses: InterfaceAddresses | undefined) => string | undefined;
@@ -36,6 +36,7 @@ async function findPort(min, max, protocol = "udp4", interfaceAddresses) {
36
36
  socket.once("listening", () => r());
37
37
  });
38
38
  if (err) {
39
+ await new Promise((r) => socket.close(() => r()));
39
40
  continue;
40
41
  }
41
42
  port = socket.address()?.port;
@@ -1 +1 @@
1
- {"version":3,"file":"network.js","sourceRoot":"","sources":["../../../../common/src/network.ts"],"names":[],"mappings":";;;AAAA,iCAAiD;AAM1C,MAAM,gBAAgB,GAAG,CAC9B,IAAgB,EAChB,kBAAkD,EAClD,EAAE,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;AAHpD,QAAA,gBAAgB,oBAGoC;AAE1D,KAAK,UAAU,UAAU,CAC9B,WAAuB,MAAM,EAC7B,kBAAuC;IAEvC,MAAM,MAAM,GAAG,IAAA,oBAAY,EAAC,QAAQ,CAAC,CAAC;IAEtC,YAAY,CAAC,GAAG,EAAE,CAChB,MAAM,CAAC,IAAI,CAAC;QACV,IAAI,EAAE,CAAC;QACP,OAAO,EAAE,IAAA,wBAAgB,EAAC,QAAQ,EAAE,kBAAkB,CAAC;KACxD,CAAC,CACH,CAAC;IAEF,MAAM,IAAI,OAAO,CAAO,CAAC,CAAC,EAAE,EAAE;QAC5B,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;QACxB,MAAM,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;IAC9B,CAAC,CAAC,CAAC;IAEH,MAAM,IAAI,GAAG,MAAM,CAAC,OAAO,EAAE,EAAE,IAAI,CAAC;IACpC,MAAM,IAAI,OAAO,CAAO,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACxD,OAAO,IAAI,CAAC;AACd,CAAC;AArBD,gCAqBC;AAEM,KAAK,UAAU,WAAW,CAC/B,GAAW,EACX,WAAuB,MAAM,EAC7B,kBAAuC;IAEvC,OAAO,OAAO,CAAC,GAAG,CAChB,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,QAAQ,EAAE,kBAAkB,CAAC,CAAC,CACpE,CAAC;AACJ,CAAC;AARD,kCAQC;AAEM,KAAK,UAAU,QAAQ,CAC5B,GAAW,EACX,GAAW,EACX,WAAuB,MAAM,EAC7B,kBAAuC;IAEvC,IAAI,IAAwB,CAAC;IAE7B,KAAK,IAAI,CAAC,GAAG,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,EAAE,EAAE;QAC/B,MAAM,MAAM,GAAG,IAAA,oBAAY,EAAC,QAAQ,CAAC,CAAC;QAEtC,YAAY,CAAC,GAAG,EAAE,CAChB,MAAM,CAAC,IAAI,CAAC;YACV,IAAI,EAAE,CAAC;YACP,OAAO,EAAE,IAAA,wBAAgB,EAAC,QAAQ,EAAE,kBAAkB,CAAC;SACxD,CAAC,CACH,CAAC;QAEF,MAAM,GAAG,GAAG,MAAM,IAAI,OAAO,CAAe,CAAC,CAAC,EAAE,EAAE;YAChD,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAClC,MAAM,CAAC,IAAI,CAAC,WAAW,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;QACtC,CAAC,CAAC,CAAC;QACH,IAAI,GAAG,EAAE;YACP,SAAS;SACV;QAED,IAAI,GAAG,MAAM,CAAC,OAAO,EAAE,EAAE,IAAI,CAAC;QAC9B,MAAM,IAAI,OAAO,CAAO,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QACxD,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE;YAC9B,MAAM;SACP;KACF;IAED,IAAI,CAAC,IAAI;QAAE,MAAM,IAAI,KAAK,CAAC,gBAAgB,CAAC,CAAC;IAE7C,OAAO,IAAI,CAAC;AACd,CAAC;AApCD,4BAoCC","sourcesContent":["import { createSocket, SocketType } from \"dgram\";\n\nexport type InterfaceAddresses = {\n [K in SocketType]?: string;\n};\n\nexport const interfaceAddress = (\n type: SocketType,\n interfaceAddresses: InterfaceAddresses | undefined\n) => (interfaceAddresses ? interfaceAddresses[type] : undefined);\n\nexport async function randomPort(\n protocol: SocketType = \"udp4\",\n interfaceAddresses?: InterfaceAddresses\n) {\n const socket = createSocket(protocol);\n\n setImmediate(() =>\n socket.bind({\n port: 0,\n address: interfaceAddress(protocol, interfaceAddresses),\n })\n );\n\n await new Promise<void>((r) => {\n socket.once(\"error\", r);\n socket.once(\"listening\", r);\n });\n\n const port = socket.address()?.port;\n await new Promise<void>((r) => socket.close(() => r()));\n return port;\n}\n\nexport async function randomPorts(\n num: number,\n protocol: SocketType = \"udp4\",\n interfaceAddresses?: InterfaceAddresses\n) {\n return Promise.all(\n [...Array(num)].map(() => randomPort(protocol, interfaceAddresses))\n );\n}\n\nexport async function findPort(\n min: number,\n max: number,\n protocol: SocketType = \"udp4\",\n interfaceAddresses?: InterfaceAddresses\n) {\n let port: number | undefined;\n\n for (let i = min; i <= max; i++) {\n const socket = createSocket(protocol);\n\n setImmediate(() =>\n socket.bind({\n port: i,\n address: interfaceAddress(protocol, interfaceAddresses),\n })\n );\n\n const err = await new Promise<Error | void>((r) => {\n socket.once(\"error\", (e) => r(e));\n socket.once(\"listening\", () => r());\n });\n if (err) {\n continue;\n }\n\n port = socket.address()?.port;\n await new Promise<void>((r) => socket.close(() => r()));\n if (min <= port && port <= max) {\n break;\n }\n }\n\n if (!port) throw new Error(\"port not found\");\n\n return port;\n}\n"]}
1
+ {"version":3,"file":"network.js","sourceRoot":"","sources":["../../../../common/src/network.ts"],"names":[],"mappings":"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","sourcesContent":["import { createSocket, SocketType } from \"dgram\";\n\nexport type InterfaceAddresses = {\n [K in SocketType]?: string;\n};\n\nexport const interfaceAddress = (\n type: SocketType,\n interfaceAddresses: InterfaceAddresses | undefined\n) => (interfaceAddresses ? interfaceAddresses[type] : undefined);\n\nexport async function randomPort(\n protocol: SocketType = \"udp4\",\n interfaceAddresses?: InterfaceAddresses\n) {\n const socket = createSocket(protocol);\n\n setImmediate(() =>\n socket.bind({\n port: 0,\n address: interfaceAddress(protocol, interfaceAddresses),\n })\n );\n\n await new Promise<void>((r) => {\n socket.once(\"error\", r);\n socket.once(\"listening\", r);\n });\n\n const port = socket.address()?.port;\n await new Promise<void>((r) => socket.close(() => r()));\n return port;\n}\n\nexport async function randomPorts(\n num: number,\n protocol: SocketType = \"udp4\",\n interfaceAddresses?: InterfaceAddresses\n) {\n return Promise.all(\n [...Array(num)].map(() => randomPort(protocol, interfaceAddresses))\n );\n}\n\nexport async function findPort(\n min: number,\n max: number,\n protocol: SocketType = \"udp4\",\n interfaceAddresses?: InterfaceAddresses\n) {\n let port: number | undefined;\n\n for (let i = min; i <= max; i++) {\n const socket = createSocket(protocol);\n\n setImmediate(() =>\n socket.bind({\n port: i,\n address: interfaceAddress(protocol, interfaceAddresses),\n })\n );\n\n const err = await new Promise<Error | void>((r) => {\n socket.once(\"error\", (e) => r(e));\n socket.once(\"listening\", () => r());\n });\n if (err) {\n await new Promise<void>((r) => socket.close(() => r()));\n continue;\n }\n\n port = socket.address()?.port;\n await new Promise<void>((r) => socket.close(() => r()));\n if (min <= port && port <= max) {\n break;\n }\n }\n\n if (!port) throw new Error(\"port not found\");\n\n return port;\n}\n"]}
@@ -3,13 +3,28 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.PromiseQueue = void 0;
4
4
  class PromiseQueue {
5
5
  constructor() {
6
- this.queue = [];
7
- this.running = false;
8
- this.push = (promise) => new Promise((r, f) => {
9
- this.queue.push({ promise, done: r, failed: f });
10
- if (!this.running) {
11
- this.run();
12
- }
6
+ Object.defineProperty(this, "queue", {
7
+ enumerable: true,
8
+ configurable: true,
9
+ writable: true,
10
+ value: []
11
+ });
12
+ Object.defineProperty(this, "running", {
13
+ enumerable: true,
14
+ configurable: true,
15
+ writable: true,
16
+ value: false
17
+ });
18
+ Object.defineProperty(this, "push", {
19
+ enumerable: true,
20
+ configurable: true,
21
+ writable: true,
22
+ value: (promise) => new Promise((r, f) => {
23
+ this.queue.push({ promise, done: r, failed: f });
24
+ if (!this.running) {
25
+ this.run();
26
+ }
27
+ })
13
28
  });
14
29
  }
15
30
  async run() {
@@ -1 +1 @@
1
- {"version":3,"file":"promise.js","sourceRoot":"","sources":["../../../../common/src/promise.ts"],"names":[],"mappings":";;;AAAA,MAAa,YAAY;IAAzB;QACE,UAAK,GAIC,EAAE,CAAC;QACT,YAAO,GAAG,KAAK,CAAC;QAEhB,SAAI,GAAG,CAAI,OAAyB,EAAE,EAAE,CACtC,IAAI,OAAO,CAAI,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;YACtB,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC;YACjD,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE;gBACjB,IAAI,CAAC,GAAG,EAAE,CAAC;aACZ;QACH,CAAC,CAAC,CAAC;IAmBP,CAAC;IAjBS,KAAK,CAAC,GAAG;QACf,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;QAChC,IAAI,IAAI,EAAE;YACR,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;YAEpB,IAAI;gBACF,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC;gBACjC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;aAChB;YAAC,OAAO,KAAK,EAAE;gBACd,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;aACpB;YAED,IAAI,CAAC,GAAG,EAAE,CAAC;SACZ;aAAM;YACL,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;SACtB;IACH,CAAC;CACF;AAjCD,oCAiCC","sourcesContent":["export class PromiseQueue {\n queue: {\n promise: () => Promise<unknown>;\n done: (...args: any[]) => void;\n failed: (...args: any[]) => void;\n }[] = [];\n running = false;\n\n push = <T>(promise: () => Promise<T>) =>\n new Promise<T>((r, f) => {\n this.queue.push({ promise, done: r, failed: f });\n if (!this.running) {\n this.run();\n }\n });\n\n private async run() {\n const task = this.queue.shift();\n if (task) {\n this.running = true;\n\n try {\n const res = await task.promise();\n task.done(res);\n } catch (error) {\n task.failed(error);\n }\n\n this.run();\n } else {\n this.running = false;\n }\n }\n}\n"]}
1
+ {"version":3,"file":"promise.js","sourceRoot":"","sources":["../../../../common/src/promise.ts"],"names":[],"mappings":";;;AAAA,MAAa,YAAY;IAAzB;QACE;;;;mBAIM,EAAE;WAAC;QACT;;;;mBAAU,KAAK;WAAC;QAEhB;;;;mBAAO,CAAI,OAAyB,EAAE,EAAE,CACtC,IAAI,OAAO,CAAI,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;gBACtB,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC;gBACjD,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE;oBACjB,IAAI,CAAC,GAAG,EAAE,CAAC;iBACZ;YACH,CAAC,CAAC;WAAC;IAmBP,CAAC;IAjBS,KAAK,CAAC,GAAG;QACf,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;QAChC,IAAI,IAAI,EAAE;YACR,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;YAEpB,IAAI;gBACF,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC;gBACjC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;aAChB;YAAC,OAAO,KAAK,EAAE;gBACd,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;aACpB;YAED,IAAI,CAAC,GAAG,EAAE,CAAC;SACZ;aAAM;YACL,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;SACtB;IACH,CAAC;CACF;AAjCD,oCAiCC","sourcesContent":["export class PromiseQueue {\n queue: {\n promise: () => Promise<unknown>;\n done: (...args: any[]) => void;\n failed: (...args: any[]) => void;\n }[] = [];\n running = false;\n\n push = <T>(promise: () => Promise<T>) =>\n new Promise<T>((r, f) => {\n this.queue.push({ promise, done: r, failed: f });\n if (!this.running) {\n this.run();\n }\n });\n\n private async run() {\n const task = this.queue.shift();\n if (task) {\n this.running = true;\n\n try {\n const res = await task.promise();\n task.done(res);\n } catch (error) {\n task.failed(error);\n }\n\n this.run();\n } else {\n this.running = false;\n }\n }\n}\n"]}
@@ -1,3 +1,3 @@
1
- export declare type RequireAtLeastOne<T> = {
1
+ export type RequireAtLeastOne<T> = {
2
2
  [K in keyof T]-?: Required<Pick<T, K>> & Partial<Pick<T, Exclude<keyof T, K>>>;
3
3
  }[keyof T];
@@ -2,12 +2,12 @@ export declare const SignatureAlgorithm: {
2
2
  readonly rsa_1: 1;
3
3
  readonly ecdsa_3: 3;
4
4
  };
5
- export declare type SignatureAlgorithms = typeof SignatureAlgorithm[keyof typeof SignatureAlgorithm];
5
+ export type SignatureAlgorithms = typeof SignatureAlgorithm[keyof typeof SignatureAlgorithm];
6
6
  export declare const HashAlgorithm: {
7
7
  readonly sha256_4: 4;
8
8
  };
9
- export declare type HashAlgorithms = typeof HashAlgorithm[keyof typeof HashAlgorithm];
10
- export declare type SignatureHash = {
9
+ export type HashAlgorithms = typeof HashAlgorithm[keyof typeof HashAlgorithm];
10
+ export type SignatureHash = {
11
11
  hash: HashAlgorithms;
12
12
  signature: SignatureAlgorithms;
13
13
  };
@@ -15,20 +15,20 @@ export declare const CipherSuite: {
15
15
  readonly TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256_49195: 49195;
16
16
  readonly TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256_49199: 49199;
17
17
  };
18
- export declare type CipherSuites = typeof CipherSuite[keyof typeof CipherSuite];
18
+ export type CipherSuites = typeof CipherSuite[keyof typeof CipherSuite];
19
19
  export declare const CipherSuiteList: CipherSuites[];
20
20
  export declare const NamedCurveAlgorithm: {
21
21
  readonly x25519_29: 29;
22
22
  readonly secp256r1_23: 23;
23
23
  };
24
- export declare type NamedCurveAlgorithms = typeof NamedCurveAlgorithm[keyof typeof NamedCurveAlgorithm];
24
+ export type NamedCurveAlgorithms = typeof NamedCurveAlgorithm[keyof typeof NamedCurveAlgorithm];
25
25
  export declare const NamedCurveAlgorithmList: NamedCurveAlgorithms[];
26
26
  export declare const CurveType: {
27
27
  readonly named_curve_3: 3;
28
28
  };
29
- export declare type CurveTypes = typeof CurveType[keyof typeof CurveType];
29
+ export type CurveTypes = typeof CurveType[keyof typeof CurveType];
30
30
  export declare const SignatureScheme: {
31
31
  readonly rsa_pkcs1_sha256: 1025;
32
32
  readonly ecdsa_secp256r1_sha256: 1027;
33
33
  };
34
- export declare type SignatureSchemes = typeof SignatureScheme[keyof typeof SignatureScheme];
34
+ export type SignatureSchemes = typeof SignatureScheme[keyof typeof SignatureScheme];
@@ -24,7 +24,30 @@ const kxTypes = {
24
24
  */
25
25
  class KeyExchange {
26
26
  constructor() {
27
- this.id = 0;
27
+ Object.defineProperty(this, "id", {
28
+ enumerable: true,
29
+ configurable: true,
30
+ writable: true,
31
+ value: 0
32
+ });
33
+ Object.defineProperty(this, "name", {
34
+ enumerable: true,
35
+ configurable: true,
36
+ writable: true,
37
+ value: void 0
38
+ });
39
+ Object.defineProperty(this, "signType", {
40
+ enumerable: true,
41
+ configurable: true,
42
+ writable: true,
43
+ value: void 0
44
+ });
45
+ Object.defineProperty(this, "keyType", {
46
+ enumerable: true,
47
+ configurable: true,
48
+ writable: true,
49
+ value: void 0
50
+ });
28
51
  }
29
52
  /**
30
53
  * @returns {string}
@@ -1 +1 @@
1
- {"version":3,"file":"key-exchange.js","sourceRoot":"","sources":["../../../../../dtls/src/cipher/key-exchange.ts"],"names":[],"mappings":";;;AAAA,MAAM,SAAS,GAAG;IAChB,IAAI,EAAE,CAAC;IACP,KAAK,EAAE,CAAC;CACT,CAAC;AAEF,MAAM,QAAQ,GAAG;IACf,IAAI,EAAE,CAAC;IACP,GAAG,EAAE,CAAC;IACN,KAAK,EAAE,CAAC;IACR,GAAG,EAAE,CAAC;CACP,CAAC;AAEF,MAAM,OAAO,GAAG;IACd,IAAI,EAAE,CAAC;IACP,GAAG,EAAE,CAAC;IACN,SAAS,EAAE,CAAC;IACZ,WAAW,EAAE,CAAC;IACd,GAAG,EAAE,CAAC;IACN,SAAS,EAAE,CAAC;CACb,CAAC;AAEF;;GAEG;AACH,MAAa,WAAW;IAAxB;QACE,OAAE,GAAG,CAAC,CAAC;IAWT,CAAC;IANC;;OAEG;IACH,QAAQ;QACN,OAAO,IAAI,CAAC,IAAI,CAAC;IACnB,CAAC;CACF;AAZD,kCAYC;AAED;;;GAGG;AACH,SAAgB,oBAAoB;IAClC,MAAM,QAAQ,GAAG,IAAI,WAAW,EAAE,CAAC;IAEnC,QAAQ,CAAC,EAAE,GAAG,OAAO,CAAC,GAAG,CAAC;IAC1B,QAAQ,CAAC,IAAI,GAAG,KAAK,CAAC;IAEtB,QAAQ,CAAC,OAAO,GAAG,QAAQ,CAAC,GAAG,CAAC;IAEhC,OAAO,QAAQ,CAAC;AAClB,CAAC;AATD,oDASC;AAED;;;GAGG;AACH,SAAgB,yBAAyB;IACvC,MAAM,QAAQ,GAAG,IAAI,WAAW,EAAE,CAAC;IAEnC,QAAQ,CAAC,EAAE,GAAG,OAAO,CAAC,SAAS,CAAC;IAChC,QAAQ,CAAC,IAAI,GAAG,WAAW,CAAC;IAE5B,QAAQ,CAAC,QAAQ,GAAG,SAAS,CAAC,KAAK,CAAC;IACpC,QAAQ,CAAC,OAAO,GAAG,QAAQ,CAAC,GAAG,CAAC;IAEhC,OAAO,QAAQ,CAAC;AAClB,CAAC;AAVD,8DAUC;AAED;;;GAGG;AACH,SAAgB,2BAA2B;IACzC,MAAM,QAAQ,GAAG,IAAI,WAAW,EAAE,CAAC;IAEnC,QAAQ,CAAC,EAAE,GAAG,OAAO,CAAC,WAAW,CAAC;IAClC,QAAQ,CAAC,IAAI,GAAG,aAAa,CAAC;IAE9B,QAAQ,CAAC,QAAQ,GAAG,SAAS,CAAC,KAAK,CAAC;IACpC,QAAQ,CAAC,OAAO,GAAG,QAAQ,CAAC,KAAK,CAAC;IAElC,OAAO,QAAQ,CAAC;AAClB,CAAC;AAVD,kEAUC;AAED;;;GAGG;AACH,SAAgB,qBAAqB;IACnC,MAAM,QAAQ,GAAG,IAAI,WAAW,EAAE,CAAC;IAEnC,QAAQ,CAAC,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAC3B,QAAQ,CAAC,IAAI,GAAG,MAAM,CAAC;IAEvB,QAAQ,CAAC,QAAQ,GAAG,SAAS,CAAC,IAAI,CAAC;IACnC,QAAQ,CAAC,OAAO,GAAG,QAAQ,CAAC,IAAI,CAAC;IAEjC,OAAO,QAAQ,CAAC;AAClB,CAAC;AAVD,sDAUC;AAED;;;GAGG;AACH,SAAgB,oBAAoB;IAClC,MAAM,QAAQ,GAAG,IAAI,WAAW,EAAE,CAAC;IAEnC,QAAQ,CAAC,EAAE,GAAG,OAAO,CAAC,GAAG,CAAC;IAC1B,QAAQ,CAAC,IAAI,GAAG,KAAK,CAAC;IAEtB,QAAQ,CAAC,QAAQ,GAAG,SAAS,CAAC,IAAI,CAAC;IACnC,QAAQ,CAAC,OAAO,GAAG,QAAQ,CAAC,GAAG,CAAC;IAEhC,OAAO,QAAQ,CAAC;AAClB,CAAC;AAVD,oDAUC;AAED;;;GAGG;AACH,SAAgB,yBAAyB;IACvC,MAAM,QAAQ,GAAG,IAAI,WAAW,EAAE,CAAC;IAEnC,QAAQ,CAAC,EAAE,GAAG,OAAO,CAAC,SAAS,CAAC;IAChC,QAAQ,CAAC,IAAI,GAAG,WAAW,CAAC;IAE5B,QAAQ,CAAC,QAAQ,GAAG,SAAS,CAAC,KAAK,CAAC;IACpC,QAAQ,CAAC,OAAO,GAAG,QAAQ,CAAC,GAAG,CAAC;IAEhC,OAAO,QAAQ,CAAC;AAClB,CAAC;AAVD,8DAUC","sourcesContent":["const signTypes = {\n NULL: 0,\n ECDHE: 1,\n};\n\nconst keyTypes = {\n NULL: 0,\n RSA: 1,\n ECDSA: 2,\n PSK: 3,\n};\n\nconst kxTypes = {\n NULL: 0,\n RSA: 1,\n ECDHE_RSA: 2,\n ECDHE_ECDSA: 3,\n PSK: 4,\n ECDHE_PSK: 5,\n};\n\n/**\n * This class represent type of key exchange mechanism.\n */\nexport class KeyExchange {\n id = 0;\n name?: string;\n signType?: number;\n keyType?: number;\n\n /**\n * @returns {string}\n */\n toString() {\n return this.name;\n }\n}\n\n/**\n * Creates `RSA` key exchange.\n * @returns {KeyExchange}\n */\nexport function createRSAKeyExchange() {\n const exchange = new KeyExchange();\n\n exchange.id = kxTypes.RSA;\n exchange.name = \"RSA\";\n\n exchange.keyType = keyTypes.RSA;\n\n return exchange;\n}\n\n/**\n * Creates `ECDHE_RSA` key exchange.\n * @returns {KeyExchange}\n */\nexport function createECDHERSAKeyExchange() {\n const exchange = new KeyExchange();\n\n exchange.id = kxTypes.ECDHE_RSA;\n exchange.name = \"ECDHE_RSA\";\n\n exchange.signType = signTypes.ECDHE;\n exchange.keyType = keyTypes.RSA;\n\n return exchange;\n}\n\n/**\n * Creates `ECDHE_ECDSA` key exchange.\n * @returns {KeyExchange}\n */\nexport function createECDHEECDSAKeyExchange() {\n const exchange = new KeyExchange();\n\n exchange.id = kxTypes.ECDHE_ECDSA;\n exchange.name = \"ECDHE_ECDSA\";\n\n exchange.signType = signTypes.ECDHE;\n exchange.keyType = keyTypes.ECDSA;\n\n return exchange;\n}\n\n/**\n * Creates `NULL` key exchange.\n * @returns {KeyExchange}\n */\nexport function createNULLKeyExchange() {\n const exchange = new KeyExchange();\n\n exchange.id = kxTypes.NULL;\n exchange.name = \"NULL\";\n\n exchange.signType = signTypes.NULL;\n exchange.keyType = keyTypes.NULL;\n\n return exchange;\n}\n\n/**\n * Creates `PSK` key exchange.\n * @returns {KeyExchange}\n */\nexport function createPSKKeyExchange() {\n const exchange = new KeyExchange();\n\n exchange.id = kxTypes.PSK;\n exchange.name = \"PSK\";\n\n exchange.signType = signTypes.NULL;\n exchange.keyType = keyTypes.PSK;\n\n return exchange;\n}\n\n/**\n * Creates `ECDHE_PSK` key exchange.\n * @returns {KeyExchange}\n */\nexport function createECDHEPSKKeyExchange() {\n const exchange = new KeyExchange();\n\n exchange.id = kxTypes.ECDHE_PSK;\n exchange.name = \"ECDHE_PSK\";\n\n exchange.signType = signTypes.ECDHE;\n exchange.keyType = keyTypes.PSK;\n\n return exchange;\n}\n"]}
1
+ {"version":3,"file":"key-exchange.js","sourceRoot":"","sources":["../../../../../dtls/src/cipher/key-exchange.ts"],"names":[],"mappings":"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","sourcesContent":["const signTypes = {\n NULL: 0,\n ECDHE: 1,\n};\n\nconst keyTypes = {\n NULL: 0,\n RSA: 1,\n ECDSA: 2,\n PSK: 3,\n};\n\nconst kxTypes = {\n NULL: 0,\n RSA: 1,\n ECDHE_RSA: 2,\n ECDHE_ECDSA: 3,\n PSK: 4,\n ECDHE_PSK: 5,\n};\n\n/**\n * This class represent type of key exchange mechanism.\n */\nexport class KeyExchange {\n id = 0;\n name?: string;\n signType?: number;\n keyType?: number;\n\n /**\n * @returns {string}\n */\n toString() {\n return this.name;\n }\n}\n\n/**\n * Creates `RSA` key exchange.\n * @returns {KeyExchange}\n */\nexport function createRSAKeyExchange() {\n const exchange = new KeyExchange();\n\n exchange.id = kxTypes.RSA;\n exchange.name = \"RSA\";\n\n exchange.keyType = keyTypes.RSA;\n\n return exchange;\n}\n\n/**\n * Creates `ECDHE_RSA` key exchange.\n * @returns {KeyExchange}\n */\nexport function createECDHERSAKeyExchange() {\n const exchange = new KeyExchange();\n\n exchange.id = kxTypes.ECDHE_RSA;\n exchange.name = \"ECDHE_RSA\";\n\n exchange.signType = signTypes.ECDHE;\n exchange.keyType = keyTypes.RSA;\n\n return exchange;\n}\n\n/**\n * Creates `ECDHE_ECDSA` key exchange.\n * @returns {KeyExchange}\n */\nexport function createECDHEECDSAKeyExchange() {\n const exchange = new KeyExchange();\n\n exchange.id = kxTypes.ECDHE_ECDSA;\n exchange.name = \"ECDHE_ECDSA\";\n\n exchange.signType = signTypes.ECDHE;\n exchange.keyType = keyTypes.ECDSA;\n\n return exchange;\n}\n\n/**\n * Creates `NULL` key exchange.\n * @returns {KeyExchange}\n */\nexport function createNULLKeyExchange() {\n const exchange = new KeyExchange();\n\n exchange.id = kxTypes.NULL;\n exchange.name = \"NULL\";\n\n exchange.signType = signTypes.NULL;\n exchange.keyType = keyTypes.NULL;\n\n return exchange;\n}\n\n/**\n * Creates `PSK` key exchange.\n * @returns {KeyExchange}\n */\nexport function createPSKKeyExchange() {\n const exchange = new KeyExchange();\n\n exchange.id = kxTypes.PSK;\n exchange.name = \"PSK\";\n\n exchange.signType = signTypes.NULL;\n exchange.keyType = keyTypes.PSK;\n\n return exchange;\n}\n\n/**\n * Creates `ECDHE_PSK` key exchange.\n * @returns {KeyExchange}\n */\nexport function createECDHEPSKKeyExchange() {\n const exchange = new KeyExchange();\n\n exchange.id = kxTypes.ECDHE_PSK;\n exchange.name = \"ECDHE_PSK\";\n\n exchange.signType = signTypes.ECDHE;\n exchange.keyType = keyTypes.PSK;\n\n return exchange;\n}\n"]}
@@ -1,6 +1,6 @@
1
1
  /// <reference types="node" />
2
2
  import { KeyExchange } from "../key-exchange";
3
- export declare type CipherHeader = {
3
+ export type CipherHeader = {
4
4
  type: number;
5
5
  version: number;
6
6
  epoch: number;
@@ -10,7 +10,7 @@ export declare const SessionType: {
10
10
  readonly CLIENT: 1;
11
11
  readonly SERVER: 2;
12
12
  };
13
- export declare type SessionTypes = typeof SessionType[keyof typeof SessionType];
13
+ export type SessionTypes = typeof SessionType[keyof typeof SessionType];
14
14
  export default abstract class AbstractCipher {
15
15
  id: number;
16
16
  name?: string;
@@ -7,8 +7,42 @@ exports.SessionType = {
7
7
  };
8
8
  class AbstractCipher {
9
9
  constructor() {
10
- this.id = 0;
11
- this.verifyDataLength = 12;
10
+ Object.defineProperty(this, "id", {
11
+ enumerable: true,
12
+ configurable: true,
13
+ writable: true,
14
+ value: 0
15
+ });
16
+ Object.defineProperty(this, "name", {
17
+ enumerable: true,
18
+ configurable: true,
19
+ writable: true,
20
+ value: void 0
21
+ });
22
+ Object.defineProperty(this, "hashAlgorithm", {
23
+ enumerable: true,
24
+ configurable: true,
25
+ writable: true,
26
+ value: void 0
27
+ });
28
+ Object.defineProperty(this, "verifyDataLength", {
29
+ enumerable: true,
30
+ configurable: true,
31
+ writable: true,
32
+ value: 12
33
+ });
34
+ Object.defineProperty(this, "blockAlgorithm", {
35
+ enumerable: true,
36
+ configurable: true,
37
+ writable: true,
38
+ value: void 0
39
+ });
40
+ Object.defineProperty(this, "kx", {
41
+ enumerable: true,
42
+ configurable: true,
43
+ writable: true,
44
+ value: void 0
45
+ });
12
46
  }
13
47
  /**
14
48
  * Init cipher.
@@ -1 +1 @@
1
- {"version":3,"file":"abstract.js","sourceRoot":"","sources":["../../../../../../dtls/src/cipher/suites/abstract.ts"],"names":[],"mappings":";;;AASa,QAAA,WAAW,GAAG;IACzB,MAAM,EAAE,CAAC;IACT,MAAM,EAAE,CAAC;CACD,CAAC;AAGX,MAA8B,cAAc;IAA5C;QACE,OAAE,GAAG,CAAC,CAAC;QAGP,qBAAgB,GAAG,EAAE,CAAC;IAmCxB,CAAC;IA9BC;;;OAGG;IACH,IAAI,CAAC,GAAG,IAAS;QACf,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAC;IACrC,CAAC;IAED;;;OAGG;IACH,OAAO,CAAC,GAAG,IAAS;QAClB,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAC;IACrC,CAAC;IAED;;;OAGG;IACH,OAAO,CAAC,GAAG,IAAS;QAClB,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAC;IACrC,CAAC;IAED;;OAEG;IACH,QAAQ;QACN,OAAO,IAAI,CAAC,IAAI,CAAC;IACnB,CAAC;CACF;AAvCD,iCAuCC","sourcesContent":["import { KeyExchange } from \"../key-exchange\";\n\nexport type CipherHeader = {\n type: number;\n version: number;\n epoch: number;\n sequenceNumber: number;\n};\n\nexport const SessionType = {\n CLIENT: 1,\n SERVER: 2,\n} as const;\nexport type SessionTypes = typeof SessionType[keyof typeof SessionType];\n\nexport default abstract class AbstractCipher {\n id = 0;\n name?: string;\n hashAlgorithm?: string;\n verifyDataLength = 12;\n\n blockAlgorithm?: string;\n kx?: KeyExchange;\n\n /**\n * Init cipher.\n * @abstract\n */\n init(...args: any) {\n throw new Error(\"not implemented\");\n }\n\n /**\n * Encrypts data.\n * @abstract\n */\n encrypt(...args: any): Buffer {\n throw new Error(\"not implemented\");\n }\n\n /**\n * Decrypts data.\n * @abstract\n */\n decrypt(...args: any): Buffer {\n throw new Error(\"not implemented\");\n }\n\n /**\n * @returns {string}\n */\n toString() {\n return this.name;\n }\n}\n"]}
1
+ {"version":3,"file":"abstract.js","sourceRoot":"","sources":["../../../../../../dtls/src/cipher/suites/abstract.ts"],"names":[],"mappings":";;;AASa,QAAA,WAAW,GAAG;IACzB,MAAM,EAAE,CAAC;IACT,MAAM,EAAE,CAAC;CACD,CAAC;AAGX,MAA8B,cAAc;IAA5C;QACE;;;;mBAAK,CAAC;WAAC;QACP;;;;;WAAc;QACd;;;;;WAAuB;QACvB;;;;mBAAmB,EAAE;WAAC;QAEtB;;;;;WAAwB;QACxB;;;;;WAAiB;IAgCnB,CAAC;IA9BC;;;OAGG;IACH,IAAI,CAAC,GAAG,IAAS;QACf,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAC;IACrC,CAAC;IAED;;;OAGG;IACH,OAAO,CAAC,GAAG,IAAS;QAClB,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAC;IACrC,CAAC;IAED;;;OAGG;IACH,OAAO,CAAC,GAAG,IAAS;QAClB,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAC;IACrC,CAAC;IAED;;OAEG;IACH,QAAQ;QACN,OAAO,IAAI,CAAC,IAAI,CAAC;IACnB,CAAC;CACF;AAvCD,iCAuCC","sourcesContent":["import { KeyExchange } from \"../key-exchange\";\n\nexport type CipherHeader = {\n type: number;\n version: number;\n epoch: number;\n sequenceNumber: number;\n};\n\nexport const SessionType = {\n CLIENT: 1,\n SERVER: 2,\n} as const;\nexport type SessionTypes = typeof SessionType[keyof typeof SessionType];\n\nexport default abstract class AbstractCipher {\n id = 0;\n name?: string;\n hashAlgorithm?: string;\n verifyDataLength = 12;\n\n blockAlgorithm?: string;\n kx?: KeyExchange;\n\n /**\n * Init cipher.\n * @abstract\n */\n init(...args: any) {\n throw new Error(\"not implemented\");\n }\n\n /**\n * Encrypts data.\n * @abstract\n */\n encrypt(...args: any): Buffer {\n throw new Error(\"not implemented\");\n }\n\n /**\n * Decrypts data.\n * @abstract\n */\n decrypt(...args: any): Buffer {\n throw new Error(\"not implemented\");\n }\n\n /**\n * @returns {string}\n */\n toString() {\n return this.name;\n }\n}\n"]}
@@ -48,12 +48,66 @@ const err = (0, debug_1.default)("werift-dtls : packages/dtls/src/cipher/suites/
48
48
  class AEADCipher extends abstract_1.default {
49
49
  constructor() {
50
50
  super();
51
- this.keyLength = 0;
52
- this.nonceLength = 0;
53
- this.ivLength = 0;
54
- this.authTagLength = 0;
55
- this.nonceImplicitLength = 0;
56
- this.nonceExplicitLength = 0;
51
+ Object.defineProperty(this, "keyLength", {
52
+ enumerable: true,
53
+ configurable: true,
54
+ writable: true,
55
+ value: 0
56
+ });
57
+ Object.defineProperty(this, "nonceLength", {
58
+ enumerable: true,
59
+ configurable: true,
60
+ writable: true,
61
+ value: 0
62
+ });
63
+ Object.defineProperty(this, "ivLength", {
64
+ enumerable: true,
65
+ configurable: true,
66
+ writable: true,
67
+ value: 0
68
+ });
69
+ Object.defineProperty(this, "authTagLength", {
70
+ enumerable: true,
71
+ configurable: true,
72
+ writable: true,
73
+ value: 0
74
+ });
75
+ Object.defineProperty(this, "nonceImplicitLength", {
76
+ enumerable: true,
77
+ configurable: true,
78
+ writable: true,
79
+ value: 0
80
+ });
81
+ Object.defineProperty(this, "nonceExplicitLength", {
82
+ enumerable: true,
83
+ configurable: true,
84
+ writable: true,
85
+ value: 0
86
+ });
87
+ Object.defineProperty(this, "clientWriteKey", {
88
+ enumerable: true,
89
+ configurable: true,
90
+ writable: true,
91
+ value: void 0
92
+ });
93
+ Object.defineProperty(this, "serverWriteKey", {
94
+ enumerable: true,
95
+ configurable: true,
96
+ writable: true,
97
+ value: void 0
98
+ });
99
+ Object.defineProperty(this, "clientNonce", {
100
+ enumerable: true,
101
+ configurable: true,
102
+ writable: true,
103
+ value: void 0
104
+ });
105
+ Object.defineProperty(this, "serverNonce", {
106
+ enumerable: true,
107
+ configurable: true,
108
+ writable: true,
109
+ value: void 0
110
+ });
57
111
  }
58
112
  get summary() {
59
113
  return (0, helper_1.getObjectSummary)(this);