@lakutata/webrtc 0.0.0-stage → 3.1.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +23 -0
- package/README.md +509 -2
- package/README.zh-CN.md +399 -0
- package/THIRD_PARTY_NOTICES.md +652 -0
- package/dist/cjs/client/SignalingConnection.d.ts +81 -0
- package/dist/cjs/client/SignalingConnection.js +67 -0
- package/dist/cjs/cluster/Cluster.d.ts +503 -0
- package/dist/cjs/cluster/Cluster.js +546 -0
- package/dist/cjs/cluster/ClusterFrames.d.ts +24 -0
- package/dist/cjs/cluster/ClusterFrames.js +90 -0
- package/dist/cjs/cluster/ClusterTURN.d.ts +63 -0
- package/dist/cjs/cluster/ClusterTURN.js +78 -0
- package/dist/cjs/cluster/Rendezvous.d.ts +8 -0
- package/dist/cjs/cluster/Rendezvous.js +23 -0
- package/dist/cjs/cluster/transports/ClusterTransport.d.ts +34 -0
- package/dist/cjs/cluster/transports/ClusterTransport.js +2 -0
- package/dist/cjs/cluster/transports/LoadClient.d.ts +6 -0
- package/dist/cjs/cluster/transports/LoadClient.js +80 -0
- package/dist/cjs/cluster/transports/MemoryClusterTransport.d.ts +13 -0
- package/dist/cjs/cluster/transports/MemoryClusterTransport.js +47 -0
- package/dist/cjs/cluster/transports/NATSClusterTransport.d.ts +23 -0
- package/dist/cjs/cluster/transports/NATSClusterTransport.js +70 -0
- package/dist/cjs/cluster/transports/RedisClusterTransport.d.ts +23 -0
- package/dist/cjs/cluster/transports/RedisClusterTransport.js +77 -0
- package/dist/cjs/exceptions/ClusterRequestException.d.ts +11 -0
- package/dist/cjs/exceptions/ClusterRequestException.js +18 -0
- package/dist/cjs/exceptions/ClusterTimeoutException.d.ts +10 -0
- package/dist/cjs/exceptions/ClusterTimeoutException.js +17 -0
- package/dist/cjs/exceptions/ClusterTransportNotFoundException.d.ts +11 -0
- package/dist/cjs/exceptions/ClusterTransportNotFoundException.js +18 -0
- package/dist/cjs/exceptions/SignalingClientRequiredException.d.ts +12 -0
- package/dist/cjs/exceptions/SignalingClientRequiredException.js +19 -0
- package/dist/cjs/exceptions/SignalingConnectionException.d.ts +12 -0
- package/dist/cjs/exceptions/SignalingConnectionException.js +19 -0
- package/dist/cjs/exceptions/SignalingDeniedException.d.ts +11 -0
- package/dist/cjs/exceptions/SignalingDeniedException.js +18 -0
- package/dist/cjs/exceptions/SignalingLimitException.d.ts +11 -0
- package/dist/cjs/exceptions/SignalingLimitException.js +18 -0
- package/dist/cjs/exceptions/SignalingNotAMemberException.d.ts +11 -0
- package/dist/cjs/exceptions/SignalingNotAMemberException.js +18 -0
- package/dist/cjs/exceptions/WHEPDeniedException.d.ts +15 -0
- package/dist/cjs/exceptions/WHEPDeniedException.js +22 -0
- package/dist/cjs/exceptions/WHEPLimitException.d.ts +15 -0
- package/dist/cjs/exceptions/WHEPLimitException.js +22 -0
- package/dist/cjs/exceptions/WHEPMediaTypeException.d.ts +15 -0
- package/dist/cjs/exceptions/WHEPMediaTypeException.js +22 -0
- package/dist/cjs/exceptions/WHEPOfferException.d.ts +16 -0
- package/dist/cjs/exceptions/WHEPOfferException.js +23 -0
- package/dist/cjs/exceptions/WHEPSessionNotFoundException.d.ts +15 -0
- package/dist/cjs/exceptions/WHEPSessionNotFoundException.js +22 -0
- package/dist/cjs/exceptions/WHIPDeniedException.d.ts +15 -0
- package/dist/cjs/exceptions/WHIPDeniedException.js +22 -0
- package/dist/cjs/exceptions/WHIPLimitException.d.ts +15 -0
- package/dist/cjs/exceptions/WHIPLimitException.js +22 -0
- package/dist/cjs/exceptions/WHIPMediaTypeException.d.ts +15 -0
- package/dist/cjs/exceptions/WHIPMediaTypeException.js +22 -0
- package/dist/cjs/exceptions/WHIPOfferException.d.ts +16 -0
- package/dist/cjs/exceptions/WHIPOfferException.js +23 -0
- package/dist/cjs/exceptions/WHIPSessionNotFoundException.d.ts +15 -0
- package/dist/cjs/exceptions/WHIPSessionNotFoundException.js +22 -0
- package/dist/cjs/exports/Client.d.ts +11 -0
- package/dist/cjs/exports/Client.js +29 -0
- package/dist/cjs/exports/WebRTC.d.ts +48 -0
- package/dist/cjs/exports/WebRTC.js +72 -0
- package/dist/cjs/lib/common/binary.d.ts +51 -0
- package/dist/cjs/lib/common/binary.js +264 -0
- package/dist/cjs/lib/common/binaryData.d.ts +116 -0
- package/dist/cjs/lib/common/binaryData.js +400 -0
- package/dist/cjs/lib/common/crc.d.ts +4 -0
- package/dist/cjs/lib/common/crc.js +122 -0
- package/dist/cjs/lib/common/deque.d.ts +36 -0
- package/dist/cjs/lib/common/deque.js +89 -0
- package/dist/cjs/lib/common/event.d.ts +48 -0
- package/dist/cjs/lib/common/event.js +207 -0
- package/dist/cjs/lib/common/index.d.ts +11 -0
- package/dist/cjs/lib/common/index.js +50 -0
- package/dist/cjs/lib/common/log.d.ts +47 -0
- package/dist/cjs/lib/common/log.js +62 -0
- package/dist/cjs/lib/common/network.d.ts +10 -0
- package/dist/cjs/lib/common/network.js +60 -0
- package/dist/cjs/lib/common/number.d.ts +13 -0
- package/dist/cjs/lib/common/number.js +43 -0
- package/dist/cjs/lib/common/promise.d.ts +21 -0
- package/dist/cjs/lib/common/promise.js +70 -0
- package/dist/cjs/lib/common/transport.d.ts +104 -0
- package/dist/cjs/lib/common/transport.js +441 -0
- package/dist/cjs/lib/common/type.d.ts +3 -0
- package/dist/cjs/lib/common/type.js +2 -0
- package/dist/cjs/lib/dtls/cipher/const.d.ts +42 -0
- package/dist/cjs/lib/dtls/cipher/const.js +33 -0
- package/dist/cjs/lib/dtls/cipher/create.d.ts +21 -0
- package/dist/cjs/lib/dtls/cipher/create.js +105 -0
- package/dist/cjs/lib/dtls/cipher/ec.d.ts +28 -0
- package/dist/cjs/lib/dtls/cipher/ec.js +44 -0
- package/dist/cjs/lib/dtls/cipher/key-exchange.d.ts +43 -0
- package/dist/cjs/lib/dtls/cipher/key-exchange.js +113 -0
- package/dist/cjs/lib/dtls/cipher/namedCurve.d.ts +7 -0
- package/dist/cjs/lib/dtls/cipher/namedCurve.js +27 -0
- package/dist/cjs/lib/dtls/cipher/prf.d.ts +17 -0
- package/dist/cjs/lib/dtls/cipher/prf.js +92 -0
- package/dist/cjs/lib/dtls/cipher/suites/abstract.d.ts +40 -0
- package/dist/cjs/lib/dtls/cipher/suites/abstract.js +41 -0
- package/dist/cjs/lib/dtls/cipher/suites/aead.d.ts +28 -0
- package/dist/cjs/lib/dtls/cipher/suites/aead.js +132 -0
- package/dist/cjs/lib/dtls/cipher/suites/null.d.ts +24 -0
- package/dist/cjs/lib/dtls/cipher/suites/null.js +41 -0
- package/dist/cjs/lib/dtls/cipher/utils.d.ts +18 -0
- package/dist/cjs/lib/dtls/cipher/utils.js +70 -0
- package/dist/cjs/lib/dtls/cipher/x509.d.ts +33 -0
- package/dist/cjs/lib/dtls/cipher/x509.js +100 -0
- package/dist/cjs/lib/dtls/client.d.ts +7 -0
- package/dist/cjs/lib/dtls/client.js +76 -0
- package/dist/cjs/lib/dtls/context/cipher.d.ts +42 -0
- package/dist/cjs/lib/dtls/context/cipher.js +87 -0
- package/dist/cjs/lib/dtls/context/dtls.d.ts +38 -0
- package/dist/cjs/lib/dtls/context/dtls.js +49 -0
- package/dist/cjs/lib/dtls/context/srtp.d.ts +5 -0
- package/dist/cjs/lib/dtls/context/srtp.js +12 -0
- package/dist/cjs/lib/dtls/context/transport.d.ts +8 -0
- package/dist/cjs/lib/dtls/context/transport.js +17 -0
- package/dist/cjs/lib/dtls/flight/client/flight1.d.ts +10 -0
- package/dist/cjs/lib/dtls/flight/client/flight1.js +26 -0
- package/dist/cjs/lib/dtls/flight/client/flight3.d.ts +8 -0
- package/dist/cjs/lib/dtls/flight/client/flight3.js +25 -0
- package/dist/cjs/lib/dtls/flight/client/flight5.d.ts +18 -0
- package/dist/cjs/lib/dtls/flight/client/flight5.js +206 -0
- package/dist/cjs/lib/dtls/flight/flight.d.ts +18 -0
- package/dist/cjs/lib/dtls/flight/flight.js +68 -0
- package/dist/cjs/lib/dtls/flight/server/flight2.d.ts +6 -0
- package/dist/cjs/lib/dtls/flight/server/flight2.js +126 -0
- package/dist/cjs/lib/dtls/flight/server/flight4.d.ts +17 -0
- package/dist/cjs/lib/dtls/flight/server/flight4.js +87 -0
- package/dist/cjs/lib/dtls/flight/server/flight6.d.ts +13 -0
- package/dist/cjs/lib/dtls/flight/server/flight6.js +111 -0
- package/dist/cjs/lib/dtls/handshake/binary.d.ts +16 -0
- package/dist/cjs/lib/dtls/handshake/binary.js +20 -0
- package/dist/cjs/lib/dtls/handshake/const.d.ts +13 -0
- package/dist/cjs/lib/dtls/handshake/const.js +17 -0
- package/dist/cjs/lib/dtls/handshake/extensions/ellipticCurves.d.ts +17 -0
- package/dist/cjs/lib/dtls/handshake/extensions/ellipticCurves.js +40 -0
- package/dist/cjs/lib/dtls/handshake/extensions/extendedMasterSecret.d.ts +3 -0
- package/dist/cjs/lib/dtls/handshake/extensions/extendedMasterSecret.js +7 -0
- package/dist/cjs/lib/dtls/handshake/extensions/renegotiationIndication.d.ts +18 -0
- package/dist/cjs/lib/dtls/handshake/extensions/renegotiationIndication.js +34 -0
- package/dist/cjs/lib/dtls/handshake/extensions/signature.d.ts +26 -0
- package/dist/cjs/lib/dtls/handshake/extensions/signature.js +39 -0
- package/dist/cjs/lib/dtls/handshake/extensions/useSrtp.d.ts +19 -0
- package/dist/cjs/lib/dtls/handshake/extensions/useSrtp.js +65 -0
- package/dist/cjs/lib/dtls/handshake/message/alert.d.ts +12 -0
- package/dist/cjs/lib/dtls/handshake/message/alert.js +24 -0
- package/dist/cjs/lib/dtls/handshake/message/certificate.d.ts +17 -0
- package/dist/cjs/lib/dtls/handshake/message/certificate.js +35 -0
- package/dist/cjs/lib/dtls/handshake/message/changeCipherSpec.d.ts +11 -0
- package/dist/cjs/lib/dtls/handshake/message/changeCipherSpec.js +24 -0
- package/dist/cjs/lib/dtls/handshake/message/client/certificateVerify.d.ts +20 -0
- package/dist/cjs/lib/dtls/handshake/message/client/certificateVerify.js +35 -0
- package/dist/cjs/lib/dtls/handshake/message/client/hello.d.ts +50 -0
- package/dist/cjs/lib/dtls/handshake/message/client/hello.js +48 -0
- package/dist/cjs/lib/dtls/handshake/message/client/keyExchange.d.ts +17 -0
- package/dist/cjs/lib/dtls/handshake/message/client/keyExchange.js +33 -0
- package/dist/cjs/lib/dtls/handshake/message/finished.d.ts +13 -0
- package/dist/cjs/lib/dtls/handshake/message/finished.js +26 -0
- package/dist/cjs/lib/dtls/handshake/message/server/certificateRequest.d.ts +31 -0
- package/dist/cjs/lib/dtls/handshake/message/server/certificateRequest.js +38 -0
- package/dist/cjs/lib/dtls/handshake/message/server/hello.d.ts +33 -0
- package/dist/cjs/lib/dtls/handshake/message/server/hello.js +57 -0
- package/dist/cjs/lib/dtls/handshake/message/server/helloDone.d.ts +12 -0
- package/dist/cjs/lib/dtls/handshake/message/server/helloDone.js +30 -0
- package/dist/cjs/lib/dtls/handshake/message/server/helloVerifyRequest.d.ts +32 -0
- package/dist/cjs/lib/dtls/handshake/message/server/helloVerifyRequest.js +42 -0
- package/dist/cjs/lib/dtls/handshake/message/server/keyExchange.d.ts +32 -0
- package/dist/cjs/lib/dtls/handshake/message/server/keyExchange.js +49 -0
- package/dist/cjs/lib/dtls/handshake/random.d.ts +13 -0
- package/dist/cjs/lib/dtls/handshake/random.js +29 -0
- package/dist/cjs/lib/dtls/helper.d.ts +4 -0
- package/dist/cjs/lib/dtls/helper.js +30 -0
- package/dist/cjs/lib/dtls/imports/common.d.ts +1 -0
- package/dist/cjs/lib/dtls/imports/common.js +17 -0
- package/dist/cjs/lib/dtls/imports/rtp.d.ts +1 -0
- package/dist/cjs/lib/dtls/imports/rtp.js +17 -0
- package/dist/cjs/lib/dtls/index.d.ts +7 -0
- package/dist/cjs/lib/dtls/index.js +117 -0
- package/dist/cjs/lib/dtls/record/antiReplayWindow.d.ts +27 -0
- package/dist/cjs/lib/dtls/record/antiReplayWindow.js +102 -0
- package/dist/cjs/lib/dtls/record/builder.d.ts +9 -0
- package/dist/cjs/lib/dtls/record/builder.js +27 -0
- package/dist/cjs/lib/dtls/record/const.d.ts +33 -0
- package/dist/cjs/lib/dtls/record/const.js +38 -0
- package/dist/cjs/lib/dtls/record/message/fragment.d.ts +26 -0
- package/dist/cjs/lib/dtls/record/message/fragment.js +96 -0
- package/dist/cjs/lib/dtls/record/message/header.d.ts +38 -0
- package/dist/cjs/lib/dtls/record/message/header.js +34 -0
- package/dist/cjs/lib/dtls/record/message/plaintext.d.ts +14 -0
- package/dist/cjs/lib/dtls/record/message/plaintext.js +63 -0
- package/dist/cjs/lib/dtls/record/receive.d.ts +9 -0
- package/dist/cjs/lib/dtls/record/receive.js +91 -0
- package/dist/cjs/lib/dtls/server.d.ts +6 -0
- package/dist/cjs/lib/dtls/server.js +78 -0
- package/dist/cjs/lib/dtls/socket.d.ts +52 -0
- package/dist/cjs/lib/dtls/socket.js +188 -0
- package/dist/cjs/lib/dtls/typings/domain.d.ts +20 -0
- package/dist/cjs/lib/dtls/typings/domain.js +2 -0
- package/dist/cjs/lib/dtls/util/binary.d.ts +2 -0
- package/dist/cjs/lib/dtls/util/binary.js +8 -0
- package/dist/cjs/lib/ice/candidate.d.ts +35 -0
- package/dist/cjs/lib/ice/candidate.js +198 -0
- package/dist/cjs/lib/ice/dns/lookup.d.ts +16 -0
- package/dist/cjs/lib/ice/dns/lookup.js +133 -0
- package/dist/cjs/lib/ice/dns/mdns.d.ts +38 -0
- package/dist/cjs/lib/ice/dns/mdns.js +145 -0
- package/dist/cjs/lib/ice/exceptions.d.ts +24 -0
- package/dist/cjs/lib/ice/exceptions.js +41 -0
- package/dist/cjs/lib/ice/helper.d.ts +17 -0
- package/dist/cjs/lib/ice/helper.js +74 -0
- package/dist/cjs/lib/ice/ice.d.ts +182 -0
- package/dist/cjs/lib/ice/ice.js +1584 -0
- package/dist/cjs/lib/ice/iceBase.d.ts +214 -0
- package/dist/cjs/lib/ice/iceBase.js +182 -0
- package/dist/cjs/lib/ice/imports/common.d.ts +1 -0
- package/dist/cjs/lib/ice/imports/common.js +17 -0
- package/dist/cjs/lib/ice/index.d.ts +12 -0
- package/dist/cjs/lib/ice/index.js +30 -0
- package/dist/cjs/lib/ice/internal/selectAddresses.d.ts +9 -0
- package/dist/cjs/lib/ice/internal/selectAddresses.js +39 -0
- package/dist/cjs/lib/ice/stun/attributes.d.ts +1 -0
- package/dist/cjs/lib/ice/stun/attributes.js +17 -0
- package/dist/cjs/lib/ice/stun/const.d.ts +8 -0
- package/dist/cjs/lib/ice/stun/const.js +25 -0
- package/dist/cjs/lib/ice/stun/message.d.ts +1 -0
- package/dist/cjs/lib/ice/stun/message.js +17 -0
- package/dist/cjs/lib/ice/stun/protocol.d.ts +30 -0
- package/dist/cjs/lib/ice/stun/protocol.js +125 -0
- package/dist/cjs/lib/ice/stun/tcpFrame.d.ts +5 -0
- package/dist/cjs/lib/ice/stun/tcpFrame.js +25 -0
- package/dist/cjs/lib/ice/stun/tcpProtocol.d.ts +57 -0
- package/dist/cjs/lib/ice/stun/tcpProtocol.js +323 -0
- package/dist/cjs/lib/ice/stun/transaction.d.ts +75 -0
- package/dist/cjs/lib/ice/stun/transaction.js +239 -0
- package/dist/cjs/lib/ice/turn/frame.d.ts +1 -0
- package/dist/cjs/lib/ice/turn/frame.js +17 -0
- package/dist/cjs/lib/ice/turn/protocol.d.ts +170 -0
- package/dist/cjs/lib/ice/turn/protocol.js +638 -0
- package/dist/cjs/lib/ice/types/model.d.ts +56 -0
- package/dist/cjs/lib/ice/types/model.js +2 -0
- package/dist/cjs/lib/ice/utils.d.ts +13 -0
- package/dist/cjs/lib/ice/utils.js +84 -0
- package/dist/cjs/lib/peer/const.d.ts +36 -0
- package/dist/cjs/lib/peer/const.js +53 -0
- package/dist/cjs/lib/peer/dataChannel.d.ts +69 -0
- package/dist/cjs/lib/peer/dataChannel.js +133 -0
- package/dist/cjs/lib/peer/errors.d.ts +11 -0
- package/dist/cjs/lib/peer/errors.js +23 -0
- package/dist/cjs/lib/peer/helper.d.ts +20 -0
- package/dist/cjs/lib/peer/helper.js +84 -0
- package/dist/cjs/lib/peer/imports/common.d.ts +1 -0
- package/dist/cjs/lib/peer/imports/common.js +17 -0
- package/dist/cjs/lib/peer/imports/dtls.d.ts +1 -0
- package/dist/cjs/lib/peer/imports/dtls.js +17 -0
- package/dist/cjs/lib/peer/imports/ice.d.ts +1 -0
- package/dist/cjs/lib/peer/imports/ice.js +17 -0
- package/dist/cjs/lib/peer/imports/rtp.d.ts +1 -0
- package/dist/cjs/lib/peer/imports/rtp.js +17 -0
- package/dist/cjs/lib/peer/index.d.ts +14 -0
- package/dist/cjs/lib/peer/index.js +30 -0
- package/dist/cjs/lib/peer/media/codec.d.ts +15 -0
- package/dist/cjs/lib/peer/media/codec.js +80 -0
- package/dist/cjs/lib/peer/media/codecCompatibility.d.ts +23 -0
- package/dist/cjs/lib/peer/media/codecCompatibility.js +137 -0
- package/dist/cjs/lib/peer/media/extension/rtcpFeedback.d.ts +6 -0
- package/dist/cjs/lib/peer/media/extension/rtcpFeedback.js +13 -0
- package/dist/cjs/lib/peer/media/extension/rtpExtension.d.ts +9 -0
- package/dist/cjs/lib/peer/media/extension/rtpExtension.js +52 -0
- package/dist/cjs/lib/peer/media/index.d.ts +12 -0
- package/dist/cjs/lib/peer/media/index.js +28 -0
- package/dist/cjs/lib/peer/media/parameters.d.ts +65 -0
- package/dist/cjs/lib/peer/media/parameters.js +60 -0
- package/dist/cjs/lib/peer/media/receiver/nack.d.ts +23 -0
- package/dist/cjs/lib/peer/media/receiver/nack.js +104 -0
- package/dist/cjs/lib/peer/media/receiver/receiverTwcc.d.ts +47 -0
- package/dist/cjs/lib/peer/media/receiver/receiverTwcc.js +179 -0
- package/dist/cjs/lib/peer/media/receiver/statistics.d.ts +22 -0
- package/dist/cjs/lib/peer/media/receiver/statistics.js +71 -0
- package/dist/cjs/lib/peer/media/router.d.ts +25 -0
- package/dist/cjs/lib/peer/media/router.js +166 -0
- package/dist/cjs/lib/peer/media/rtpReceiver.d.ts +90 -0
- package/dist/cjs/lib/peer/media/rtpReceiver.js +407 -0
- package/dist/cjs/lib/peer/media/rtpSender.d.ts +209 -0
- package/dist/cjs/lib/peer/media/rtpSender.js +826 -0
- package/dist/cjs/lib/peer/media/rtpTransceiver.d.ts +117 -0
- package/dist/cjs/lib/peer/media/rtpTransceiver.js +245 -0
- package/dist/cjs/lib/peer/media/sender/cumulativeResult.d.ts +19 -0
- package/dist/cjs/lib/peer/media/sender/cumulativeResult.js +61 -0
- package/dist/cjs/lib/peer/media/sender/senderBWE.d.ts +32 -0
- package/dist/cjs/lib/peer/media/sender/senderBWE.js +99 -0
- package/dist/cjs/lib/peer/media/stats.d.ts +293 -0
- package/dist/cjs/lib/peer/media/stats.js +90 -0
- package/dist/cjs/lib/peer/media/track.d.ts +67 -0
- package/dist/cjs/lib/peer/media/track.js +216 -0
- package/dist/cjs/lib/peer/peerConnection.d.ts +458 -0
- package/dist/cjs/lib/peer/peerConnection.js +1591 -0
- package/dist/cjs/lib/peer/sctpManager.d.ts +28 -0
- package/dist/cjs/lib/peer/sctpManager.js +138 -0
- package/dist/cjs/lib/peer/sdp.d.ts +97 -0
- package/dist/cjs/lib/peer/sdp.js +628 -0
- package/dist/cjs/lib/peer/sdpManager.d.ts +116 -0
- package/dist/cjs/lib/peer/sdpManager.js +573 -0
- package/dist/cjs/lib/peer/secureTransportManager.d.ts +96 -0
- package/dist/cjs/lib/peer/secureTransportManager.js +472 -0
- package/dist/cjs/lib/peer/transceiverManager.d.ts +151 -0
- package/dist/cjs/lib/peer/transceiverManager.js +767 -0
- package/dist/cjs/lib/peer/transport/dtls.d.ts +95 -0
- package/dist/cjs/lib/peer/transport/dtls.js +571 -0
- package/dist/cjs/lib/peer/transport/ice.d.ts +143 -0
- package/dist/cjs/lib/peer/transport/ice.js +436 -0
- package/dist/cjs/lib/peer/transport/sctp.d.ts +56 -0
- package/dist/cjs/lib/peer/transport/sctp.js +387 -0
- package/dist/cjs/lib/peer/types/domain.d.ts +5 -0
- package/dist/cjs/lib/peer/types/domain.js +19 -0
- package/dist/cjs/lib/peer/types/util.d.ts +2 -0
- package/dist/cjs/lib/peer/types/util.js +2 -0
- package/dist/cjs/lib/peer/utils.d.ts +73 -0
- package/dist/cjs/lib/peer/utils.js +306 -0
- package/dist/cjs/lib/rtp/codec/av1.d.ts +56 -0
- package/dist/cjs/lib/rtp/codec/av1.js +209 -0
- package/dist/cjs/lib/rtp/codec/base.d.ts +8 -0
- package/dist/cjs/lib/rtp/codec/base.js +15 -0
- package/dist/cjs/lib/rtp/codec/h264.d.ts +32 -0
- package/dist/cjs/lib/rtp/codec/h264.js +122 -0
- package/dist/cjs/lib/rtp/codec/index.d.ts +16 -0
- package/dist/cjs/lib/rtp/codec/index.js +84 -0
- package/dist/cjs/lib/rtp/codec/leb128.d.ts +5 -0
- package/dist/cjs/lib/rtp/codec/leb128.js +23 -0
- package/dist/cjs/lib/rtp/codec/opus.d.ts +9 -0
- package/dist/cjs/lib/rtp/codec/opus.js +25 -0
- package/dist/cjs/lib/rtp/codec/vp8.d.ts +27 -0
- package/dist/cjs/lib/rtp/codec/vp8.js +109 -0
- package/dist/cjs/lib/rtp/codec/vp9.d.ts +46 -0
- package/dist/cjs/lib/rtp/codec/vp9.js +161 -0
- package/dist/cjs/lib/rtp/const.d.ts +1 -0
- package/dist/cjs/lib/rtp/const.js +4 -0
- package/dist/cjs/lib/rtp/helper.d.ts +8 -0
- package/dist/cjs/lib/rtp/helper.js +36 -0
- package/dist/cjs/lib/rtp/imports/common.d.ts +1 -0
- package/dist/cjs/lib/rtp/imports/common.js +17 -0
- package/dist/cjs/lib/rtp/index.d.ts +25 -0
- package/dist/cjs/lib/rtp/index.js +41 -0
- package/dist/cjs/lib/rtp/rtcp/header.d.ts +13 -0
- package/dist/cjs/lib/rtp/rtcp/header.js +50 -0
- package/dist/cjs/lib/rtp/rtcp/psfb/fullIntraRequest.d.ts +16 -0
- package/dist/cjs/lib/rtp/rtcp/psfb/fullIntraRequest.js +34 -0
- package/dist/cjs/lib/rtp/rtcp/psfb/index.d.ts +14 -0
- package/dist/cjs/lib/rtp/rtcp/psfb/index.js +39 -0
- package/dist/cjs/lib/rtp/rtcp/psfb/pictureLossIndication.d.ts +10 -0
- package/dist/cjs/lib/rtp/rtcp/psfb/pictureLossIndication.js +20 -0
- package/dist/cjs/lib/rtp/rtcp/psfb/remb.d.ts +16 -0
- package/dist/cjs/lib/rtp/rtcp/psfb/remb.js +53 -0
- package/dist/cjs/lib/rtp/rtcp/rr.d.ts +32 -0
- package/dist/cjs/lib/rtp/rtcp/rr.js +73 -0
- package/dist/cjs/lib/rtp/rtcp/rtcp.d.ts +10 -0
- package/dist/cjs/lib/rtp/rtcp/rtcp.js +58 -0
- package/dist/cjs/lib/rtp/rtcp/rtpfb/const.d.ts +1 -0
- package/dist/cjs/lib/rtp/rtcp/rtpfb/const.js +4 -0
- package/dist/cjs/lib/rtp/rtcp/rtpfb/index.d.ts +14 -0
- package/dist/cjs/lib/rtp/rtcp/rtpfb/index.js +35 -0
- package/dist/cjs/lib/rtp/rtcp/rtpfb/nack.d.ts +17 -0
- package/dist/cjs/lib/rtp/rtcp/rtpfb/nack.js +77 -0
- package/dist/cjs/lib/rtp/rtcp/rtpfb/twcc.d.ts +71 -0
- package/dist/cjs/lib/rtp/rtcp/rtpfb/twcc.js +352 -0
- package/dist/cjs/lib/rtp/rtcp/sdes.d.ts +26 -0
- package/dist/cjs/lib/rtp/rtcp/sdes.js +97 -0
- package/dist/cjs/lib/rtp/rtcp/sr.d.ts +41 -0
- package/dist/cjs/lib/rtp/rtcp/sr.js +110 -0
- package/dist/cjs/lib/rtp/rtp/headerExtension.d.ts +72 -0
- package/dist/cjs/lib/rtp/rtp/headerExtension.js +117 -0
- package/dist/cjs/lib/rtp/rtp/red/encoder.d.ts +13 -0
- package/dist/cjs/lib/rtp/rtp/red/encoder.js +44 -0
- package/dist/cjs/lib/rtp/rtp/red/handler.d.ts +6 -0
- package/dist/cjs/lib/rtp/rtp/red/handler.js +59 -0
- package/dist/cjs/lib/rtp/rtp/red/packet.d.ts +26 -0
- package/dist/cjs/lib/rtp/rtp/red/packet.js +112 -0
- package/dist/cjs/lib/rtp/rtp/rtp.d.ts +44 -0
- package/dist/cjs/lib/rtp/rtp/rtp.js +271 -0
- package/dist/cjs/lib/rtp/rtp/rtx.d.ts +3 -0
- package/dist/cjs/lib/rtp/rtp/rtx.js +29 -0
- package/dist/cjs/lib/rtp/srtp/cipher/ctr.d.ts +16 -0
- package/dist/cjs/lib/rtp/srtp/cipher/ctr.js +107 -0
- package/dist/cjs/lib/rtp/srtp/cipher/gcm.d.ts +17 -0
- package/dist/cjs/lib/rtp/srtp/cipher/gcm.js +145 -0
- package/dist/cjs/lib/rtp/srtp/cipher/index.d.ts +13 -0
- package/dist/cjs/lib/rtp/srtp/cipher/index.js +24 -0
- package/dist/cjs/lib/rtp/srtp/const.d.ts +6 -0
- package/dist/cjs/lib/rtp/srtp/const.js +26 -0
- package/dist/cjs/lib/rtp/srtp/context/context.d.ts +45 -0
- package/dist/cjs/lib/rtp/srtp/context/context.js +180 -0
- package/dist/cjs/lib/rtp/srtp/context/srtcp.d.ts +8 -0
- package/dist/cjs/lib/rtp/srtp/context/srtcp.js +25 -0
- package/dist/cjs/lib/rtp/srtp/context/srtp.d.ts +9 -0
- package/dist/cjs/lib/rtp/srtp/context/srtp.js +41 -0
- package/dist/cjs/lib/rtp/srtp/error.d.ts +3 -0
- package/dist/cjs/lib/rtp/srtp/error.js +10 -0
- package/dist/cjs/lib/rtp/srtp/packet.d.ts +5 -0
- package/dist/cjs/lib/rtp/srtp/packet.js +47 -0
- package/dist/cjs/lib/rtp/srtp/session.d.ts +19 -0
- package/dist/cjs/lib/rtp/srtp/session.js +13 -0
- package/dist/cjs/lib/rtp/srtp/srtcp.d.ts +8 -0
- package/dist/cjs/lib/rtp/srtp/srtcp.js +21 -0
- package/dist/cjs/lib/rtp/srtp/srtp.d.ts +9 -0
- package/dist/cjs/lib/rtp/srtp/srtp.js +20 -0
- package/dist/cjs/lib/rtp/transport.d.ts +15 -0
- package/dist/cjs/lib/rtp/transport.js +23 -0
- package/dist/cjs/lib/rtp/util.d.ts +11 -0
- package/dist/cjs/lib/rtp/util.js +28 -0
- package/dist/cjs/lib/sctp/chunk.d.ts +164 -0
- package/dist/cjs/lib/sctp/chunk.js +542 -0
- package/dist/cjs/lib/sctp/const.d.ts +17 -0
- package/dist/cjs/lib/sctp/const.js +22 -0
- package/dist/cjs/lib/sctp/helper.d.ts +5 -0
- package/dist/cjs/lib/sctp/helper.js +14 -0
- package/dist/cjs/lib/sctp/imports/common.d.ts +1 -0
- package/dist/cjs/lib/sctp/imports/common.js +17 -0
- package/dist/cjs/lib/sctp/index.d.ts +6 -0
- package/dist/cjs/lib/sctp/index.js +20 -0
- package/dist/cjs/lib/sctp/param.d.ts +40 -0
- package/dist/cjs/lib/sctp/param.js +132 -0
- package/dist/cjs/lib/sctp/sctp.d.ts +210 -0
- package/dist/cjs/lib/sctp/sctp.js +1467 -0
- package/dist/cjs/lib/sctp/transport.d.ts +15 -0
- package/dist/cjs/lib/sctp/transport.js +28 -0
- package/dist/cjs/lib/turn/index.d.ts +9 -0
- package/dist/cjs/lib/turn/index.js +25 -0
- package/dist/cjs/lib/turn/node/server.d.ts +21 -0
- package/dist/cjs/lib/turn/node/server.js +94 -0
- package/dist/cjs/lib/turn/node/turnServer.d.ts +91 -0
- package/dist/cjs/lib/turn/node/turnServer.js +565 -0
- package/dist/cjs/lib/turn/protocol.d.ts +47 -0
- package/dist/cjs/lib/turn/protocol.js +116 -0
- package/dist/cjs/lib/turn/stun/attributes.d.ts +37 -0
- package/dist/cjs/lib/turn/stun/attributes.js +208 -0
- package/dist/cjs/lib/turn/stun/const.d.ts +28 -0
- package/dist/cjs/lib/turn/stun/const.js +87 -0
- package/dist/cjs/lib/turn/stun/ip.d.ts +12 -0
- package/dist/cjs/lib/turn/stun/ip.js +87 -0
- package/dist/cjs/lib/turn/stun/message.d.ts +37 -0
- package/dist/cjs/lib/turn/stun/message.js +180 -0
- package/dist/cjs/lib/turn/turn/auth.d.ts +1 -0
- package/dist/cjs/lib/turn/turn/auth.js +9 -0
- package/dist/cjs/lib/turn/turn/frame.d.ts +13 -0
- package/dist/cjs/lib/turn/turn/frame.js +68 -0
- package/dist/cjs/lib/turn/turn/protocol.d.ts +147 -0
- package/dist/cjs/lib/turn/turn/protocol.js +785 -0
- package/dist/cjs/package.json +1 -0
- package/dist/cjs/peer/Endpoints.d.ts +75 -0
- package/dist/cjs/peer/Endpoints.js +154 -0
- package/dist/cjs/peer/EngineConfig.d.ts +20 -0
- package/dist/cjs/peer/EngineConfig.js +36 -0
- package/dist/cjs/peer/EngineConnection.d.ts +22 -0
- package/dist/cjs/peer/EngineConnection.js +27 -0
- package/dist/cjs/peer/Events.d.ts +55 -0
- package/dist/cjs/peer/Events.js +85 -0
- package/dist/cjs/peer/MediaCodecs.d.ts +27 -0
- package/dist/cjs/peer/MediaCodecs.js +53 -0
- package/dist/cjs/peer/MediaTrack.d.ts +212 -0
- package/dist/cjs/peer/MediaTrack.js +313 -0
- package/dist/cjs/peer/PeerChannel.d.ts +248 -0
- package/dist/cjs/peer/PeerChannel.js +319 -0
- package/dist/cjs/peer/PeerConnection.d.ts +603 -0
- package/dist/cjs/peer/PeerConnection.js +697 -0
- package/dist/cjs/peer/PeerThreadChannel.d.ts +112 -0
- package/dist/cjs/peer/PeerThreadChannel.js +273 -0
- package/dist/cjs/peer/PeerThreadProtocol.d.ts +325 -0
- package/dist/cjs/peer/PeerThreadProtocol.js +2 -0
- package/dist/cjs/peer/PeerThreads.d.ts +114 -0
- package/dist/cjs/peer/PeerThreads.js +268 -0
- package/dist/cjs/peer/PeerWorker.d.ts +6 -0
- package/dist/cjs/peer/PeerWorker.js +461 -0
- package/dist/cjs/peer/PeerWorkerCode.d.ts +5 -0
- package/dist/cjs/peer/PeerWorkerCode.js +4 -0
- package/dist/cjs/peer/RemoteConnection.d.ts +314 -0
- package/dist/cjs/peer/RemoteConnection.js +913 -0
- package/dist/cjs/peer/RtpPacket.d.ts +112 -0
- package/dist/cjs/peer/RtpPacket.js +92 -0
- package/dist/cjs/peer/RtpTransceiver.d.ts +167 -0
- package/dist/cjs/peer/RtpTransceiver.js +235 -0
- package/dist/cjs/peer/SignalingClient.d.ts +236 -0
- package/dist/cjs/peer/SignalingClient.js +285 -0
- package/dist/cjs/protocol/SignalingProtocol.d.ts +266 -0
- package/dist/cjs/protocol/SignalingProtocol.js +65 -0
- package/dist/cjs/service/WebRTCServiceEntrypoint.d.ts +158 -0
- package/dist/cjs/service/WebRTCServiceEntrypoint.js +356 -0
- package/dist/cjs/sfu/SFU.d.ts +356 -0
- package/dist/cjs/sfu/SFU.js +763 -0
- package/dist/cjs/sfu/SFUAccess.d.ts +48 -0
- package/dist/cjs/sfu/SFUAccess.js +15 -0
- package/dist/cjs/sfu/SFUClusterLeg.d.ts +101 -0
- package/dist/cjs/sfu/SFUClusterLeg.js +106 -0
- package/dist/cjs/sfu/SFURoom.d.ts +148 -0
- package/dist/cjs/sfu/SFURoom.js +1300 -0
- package/dist/cjs/sfu/SFUWorker.d.ts +13 -0
- package/dist/cjs/sfu/SFUWorker.js +168 -0
- package/dist/cjs/sfu/SFUWorkerChannel.d.ts +204 -0
- package/dist/cjs/sfu/SFUWorkerChannel.js +105 -0
- package/dist/cjs/sfu/SFUWorkerCode.d.ts +5 -0
- package/dist/cjs/sfu/SFUWorkerCode.js +4 -0
- package/dist/cjs/sfu/SFUWorkers.d.ts +247 -0
- package/dist/cjs/sfu/SFUWorkers.js +552 -0
- package/dist/cjs/shared/ChunkedChannel.d.ts +122 -0
- package/dist/cjs/shared/ChunkedChannel.js +182 -0
- package/dist/cjs/shared/Connections.d.ts +231 -0
- package/dist/cjs/shared/Connections.js +2 -0
- package/dist/cjs/shared/Emitter.d.ts +50 -0
- package/dist/cjs/shared/Emitter.js +80 -0
- package/dist/cjs/shared/Peer.d.ts +182 -0
- package/dist/cjs/shared/Peer.js +509 -0
- package/dist/cjs/shared/PeerServiceProxy.d.ts +173 -0
- package/dist/cjs/shared/PeerServiceProxy.js +304 -0
- package/dist/cjs/shared/Room.d.ts +143 -0
- package/dist/cjs/shared/Room.js +515 -0
- package/dist/cjs/shared/SignalingError.d.ts +40 -0
- package/dist/cjs/shared/SignalingError.js +48 -0
- package/dist/cjs/shared/SignalingSession.d.ts +97 -0
- package/dist/cjs/shared/SignalingSession.js +347 -0
- package/dist/cjs/shared/Transports.d.ts +139 -0
- package/dist/cjs/shared/Transports.js +285 -0
- package/dist/cjs/signaling/MediaServers.d.ts +40 -0
- package/dist/cjs/signaling/MediaServers.js +16 -0
- package/dist/cjs/signaling/Signaling.d.ts +573 -0
- package/dist/cjs/signaling/Signaling.js +945 -0
- package/dist/cjs/signaling/SignalingController.d.ts +128 -0
- package/dist/cjs/signaling/SignalingController.js +229 -0
- package/dist/cjs/turn/TURNCredentials.d.ts +49 -0
- package/dist/cjs/turn/TURNCredentials.js +49 -0
- package/dist/cjs/turn/TURNIceServers.d.ts +11 -0
- package/dist/cjs/turn/TURNIceServers.js +25 -0
- package/dist/cjs/turn/TURNServer.d.ts +309 -0
- package/dist/cjs/turn/TURNServer.js +331 -0
- package/dist/cjs/turn/TURNWorker.d.ts +42 -0
- package/dist/cjs/turn/TURNWorker.js +52 -0
- package/dist/cjs/turn/TURNWorkerCode.d.ts +5 -0
- package/dist/cjs/turn/TURNWorkerCode.js +4 -0
- package/dist/cjs/turn/TURNWorkers.d.ts +52 -0
- package/dist/cjs/turn/TURNWorkers.js +211 -0
- package/dist/cjs/whep/WHEP.d.ts +386 -0
- package/dist/cjs/whep/WHEP.js +426 -0
- package/dist/cjs/whep/WHEPController.d.ts +134 -0
- package/dist/cjs/whep/WHEPController.js +301 -0
- package/dist/cjs/whip/WHIP.d.ts +426 -0
- package/dist/cjs/whip/WHIP.js +470 -0
- package/dist/cjs/whip/WHIPController.d.ts +132 -0
- package/dist/cjs/whip/WHIPController.js +299 -0
- package/dist/esm/client/SignalingConnection.js +63 -0
- package/dist/esm/cluster/Cluster.js +542 -0
- package/dist/esm/cluster/ClusterFrames.js +85 -0
- package/dist/esm/cluster/ClusterTURN.js +73 -0
- package/dist/esm/cluster/Rendezvous.js +20 -0
- package/dist/esm/cluster/transports/ClusterTransport.js +1 -0
- package/dist/esm/cluster/transports/LoadClient.js +44 -0
- package/dist/esm/cluster/transports/MemoryClusterTransport.js +43 -0
- package/dist/esm/cluster/transports/NATSClusterTransport.js +66 -0
- package/dist/esm/cluster/transports/RedisClusterTransport.js +73 -0
- package/dist/esm/exceptions/ClusterRequestException.js +14 -0
- package/dist/esm/exceptions/ClusterTimeoutException.js +13 -0
- package/dist/esm/exceptions/ClusterTransportNotFoundException.js +14 -0
- package/dist/esm/exceptions/SignalingClientRequiredException.js +15 -0
- package/dist/esm/exceptions/SignalingConnectionException.js +15 -0
- package/dist/esm/exceptions/SignalingDeniedException.js +14 -0
- package/dist/esm/exceptions/SignalingLimitException.js +14 -0
- package/dist/esm/exceptions/SignalingNotAMemberException.js +14 -0
- package/dist/esm/exceptions/WHEPDeniedException.js +18 -0
- package/dist/esm/exceptions/WHEPLimitException.js +18 -0
- package/dist/esm/exceptions/WHEPMediaTypeException.js +18 -0
- package/dist/esm/exceptions/WHEPOfferException.js +19 -0
- package/dist/esm/exceptions/WHEPSessionNotFoundException.js +18 -0
- package/dist/esm/exceptions/WHIPDeniedException.js +18 -0
- package/dist/esm/exceptions/WHIPLimitException.js +18 -0
- package/dist/esm/exceptions/WHIPMediaTypeException.js +18 -0
- package/dist/esm/exceptions/WHIPOfferException.js +19 -0
- package/dist/esm/exceptions/WHIPSessionNotFoundException.js +18 -0
- package/dist/esm/exports/Client.js +5 -0
- package/dist/esm/exports/WebRTC.js +41 -0
- package/dist/esm/lib/common/binary.js +244 -0
- package/dist/esm/lib/common/binaryData.js +392 -0
- package/dist/esm/lib/common/crc.js +118 -0
- package/dist/esm/lib/common/deque.js +85 -0
- package/dist/esm/lib/common/event.js +202 -0
- package/dist/esm/lib/common/index.js +11 -0
- package/dist/esm/lib/common/log.js +55 -0
- package/dist/esm/lib/common/network.js +52 -0
- package/dist/esm/lib/common/number.js +31 -0
- package/dist/esm/lib/common/promise.js +64 -0
- package/dist/esm/lib/common/transport.js +401 -0
- package/dist/esm/lib/common/type.js +1 -0
- package/dist/esm/lib/dtls/cipher/const.js +30 -0
- package/dist/esm/lib/dtls/cipher/create.js +98 -0
- package/dist/esm/lib/dtls/cipher/ec.js +37 -0
- package/dist/esm/lib/dtls/cipher/key-exchange.js +103 -0
- package/dist/esm/lib/dtls/cipher/namedCurve.js +24 -0
- package/dist/esm/lib/dtls/cipher/prf.js +79 -0
- package/dist/esm/lib/dtls/cipher/suites/abstract.js +37 -0
- package/dist/esm/lib/dtls/cipher/suites/aead.js +96 -0
- package/dist/esm/lib/dtls/cipher/suites/null.js +35 -0
- package/dist/esm/lib/dtls/cipher/utils.js +34 -0
- package/dist/esm/lib/dtls/cipher/x509.js +94 -0
- package/dist/esm/lib/dtls/client.js +72 -0
- package/dist/esm/lib/dtls/context/cipher.js +83 -0
- package/dist/esm/lib/dtls/context/dtls.js +45 -0
- package/dist/esm/lib/dtls/context/srtp.js +8 -0
- package/dist/esm/lib/dtls/context/transport.js +13 -0
- package/dist/esm/lib/dtls/flight/client/flight1.js +22 -0
- package/dist/esm/lib/dtls/flight/client/flight3.js +21 -0
- package/dist/esm/lib/dtls/flight/client/flight5.js +202 -0
- package/dist/esm/lib/dtls/flight/flight.js +64 -0
- package/dist/esm/lib/dtls/flight/server/flight2.js +122 -0
- package/dist/esm/lib/dtls/flight/server/flight4.js +83 -0
- package/dist/esm/lib/dtls/flight/server/flight6.js +107 -0
- package/dist/esm/lib/dtls/handshake/binary.js +17 -0
- package/dist/esm/lib/dtls/handshake/const.js +14 -0
- package/dist/esm/lib/dtls/handshake/extensions/ellipticCurves.js +36 -0
- package/dist/esm/lib/dtls/handshake/extensions/extendedMasterSecret.js +3 -0
- package/dist/esm/lib/dtls/handshake/extensions/renegotiationIndication.js +30 -0
- package/dist/esm/lib/dtls/handshake/extensions/signature.js +35 -0
- package/dist/esm/lib/dtls/handshake/extensions/useSrtp.js +61 -0
- package/dist/esm/lib/dtls/handshake/message/alert.js +20 -0
- package/dist/esm/lib/dtls/handshake/message/certificate.js +31 -0
- package/dist/esm/lib/dtls/handshake/message/changeCipherSpec.js +20 -0
- package/dist/esm/lib/dtls/handshake/message/client/certificateVerify.js +31 -0
- package/dist/esm/lib/dtls/handshake/message/client/hello.js +44 -0
- package/dist/esm/lib/dtls/handshake/message/client/keyExchange.js +29 -0
- package/dist/esm/lib/dtls/handshake/message/finished.js +22 -0
- package/dist/esm/lib/dtls/handshake/message/server/certificateRequest.js +34 -0
- package/dist/esm/lib/dtls/handshake/message/server/hello.js +53 -0
- package/dist/esm/lib/dtls/handshake/message/server/helloDone.js +26 -0
- package/dist/esm/lib/dtls/handshake/message/server/helloVerifyRequest.js +38 -0
- package/dist/esm/lib/dtls/handshake/message/server/keyExchange.js +45 -0
- package/dist/esm/lib/dtls/handshake/random.js +25 -0
- package/dist/esm/lib/dtls/helper.js +23 -0
- package/dist/esm/lib/dtls/imports/common.js +1 -0
- package/dist/esm/lib/dtls/imports/rtp.js +1 -0
- package/dist/esm/lib/dtls/index.js +97 -0
- package/dist/esm/lib/dtls/record/antiReplayWindow.js +98 -0
- package/dist/esm/lib/dtls/record/builder.js +22 -0
- package/dist/esm/lib/dtls/record/const.js +35 -0
- package/dist/esm/lib/dtls/record/message/fragment.js +92 -0
- package/dist/esm/lib/dtls/record/message/header.js +30 -0
- package/dist/esm/lib/dtls/record/message/plaintext.js +59 -0
- package/dist/esm/lib/dtls/record/receive.js +86 -0
- package/dist/esm/lib/dtls/server.js +74 -0
- package/dist/esm/lib/dtls/socket.js +184 -0
- package/dist/esm/lib/dtls/typings/domain.js +1 -0
- package/dist/esm/lib/dtls/util/binary.js +5 -0
- package/dist/esm/lib/ice/candidate.js +190 -0
- package/dist/esm/lib/ice/dns/lookup.js +95 -0
- package/dist/esm/lib/ice/dns/mdns.js +139 -0
- package/dist/esm/lib/ice/exceptions.js +34 -0
- package/dist/esm/lib/ice/helper.js +65 -0
- package/dist/esm/lib/ice/ice.js +1547 -0
- package/dist/esm/lib/ice/iceBase.js +172 -0
- package/dist/esm/lib/ice/imports/common.js +1 -0
- package/dist/esm/lib/ice/index.js +12 -0
- package/dist/esm/lib/ice/internal/selectAddresses.js +36 -0
- package/dist/esm/lib/ice/stun/attributes.js +1 -0
- package/dist/esm/lib/ice/stun/const.js +8 -0
- package/dist/esm/lib/ice/stun/message.js +1 -0
- package/dist/esm/lib/ice/stun/protocol.js +121 -0
- package/dist/esm/lib/ice/stun/tcpFrame.js +21 -0
- package/dist/esm/lib/ice/stun/tcpProtocol.js +318 -0
- package/dist/esm/lib/ice/stun/transaction.js +230 -0
- package/dist/esm/lib/ice/turn/frame.js +1 -0
- package/dist/esm/lib/ice/turn/protocol.js +630 -0
- package/dist/esm/lib/ice/types/model.js +1 -0
- package/dist/esm/lib/ice/utils.js +43 -0
- package/dist/esm/lib/peer/const.js +50 -0
- package/dist/esm/lib/peer/dataChannel.js +127 -0
- package/dist/esm/lib/peer/errors.js +17 -0
- package/dist/esm/lib/peer/helper.js +77 -0
- package/dist/esm/lib/peer/imports/common.js +1 -0
- package/dist/esm/lib/peer/imports/dtls.js +1 -0
- package/dist/esm/lib/peer/imports/ice.js +1 -0
- package/dist/esm/lib/peer/imports/rtp.js +1 -0
- package/dist/esm/lib/peer/index.js +14 -0
- package/dist/esm/lib/peer/media/codec.js +69 -0
- package/dist/esm/lib/peer/media/codecCompatibility.js +128 -0
- package/dist/esm/lib/peer/media/extension/rtcpFeedback.js +5 -0
- package/dist/esm/lib/peer/media/extension/rtpExtension.js +42 -0
- package/dist/esm/lib/peer/media/index.js +12 -0
- package/dist/esm/lib/peer/media/parameters.js +50 -0
- package/dist/esm/lib/peer/media/receiver/nack.js +100 -0
- package/dist/esm/lib/peer/media/receiver/receiverTwcc.js +175 -0
- package/dist/esm/lib/peer/media/receiver/statistics.js +67 -0
- package/dist/esm/lib/peer/media/router.js +162 -0
- package/dist/esm/lib/peer/media/rtpReceiver.js +403 -0
- package/dist/esm/lib/peer/media/rtpSender.js +822 -0
- package/dist/esm/lib/peer/media/rtpTransceiver.js +241 -0
- package/dist/esm/lib/peer/media/sender/cumulativeResult.js +57 -0
- package/dist/esm/lib/peer/media/sender/senderBWE.js +95 -0
- package/dist/esm/lib/peer/media/stats.js +81 -0
- package/dist/esm/lib/peer/media/track.js +208 -0
- package/dist/esm/lib/peer/peerConnection.js +1585 -0
- package/dist/esm/lib/peer/sctpManager.js +134 -0
- package/dist/esm/lib/peer/sdp.js +614 -0
- package/dist/esm/lib/peer/sdpManager.js +569 -0
- package/dist/esm/lib/peer/secureTransportManager.js +468 -0
- package/dist/esm/lib/peer/transceiverManager.js +763 -0
- package/dist/esm/lib/peer/transport/dtls.js +564 -0
- package/dist/esm/lib/peer/transport/ice.js +426 -0
- package/dist/esm/lib/peer/transport/sctp.js +382 -0
- package/dist/esm/lib/peer/types/domain.js +16 -0
- package/dist/esm/lib/peer/types/util.js +1 -0
- package/dist/esm/lib/peer/utils.js +286 -0
- package/dist/esm/lib/rtp/codec/av1.js +203 -0
- package/dist/esm/lib/rtp/codec/base.js +11 -0
- package/dist/esm/lib/rtp/codec/h264.js +118 -0
- package/dist/esm/lib/rtp/codec/index.js +66 -0
- package/dist/esm/lib/rtp/codec/leb128.js +20 -0
- package/dist/esm/lib/rtp/codec/opus.js +21 -0
- package/dist/esm/lib/rtp/codec/vp8.js +105 -0
- package/dist/esm/lib/rtp/codec/vp9.js +157 -0
- package/dist/esm/lib/rtp/const.js +1 -0
- package/dist/esm/lib/rtp/helper.js +29 -0
- package/dist/esm/lib/rtp/imports/common.js +1 -0
- package/dist/esm/lib/rtp/index.js +25 -0
- package/dist/esm/lib/rtp/rtcp/header.js +46 -0
- package/dist/esm/lib/rtp/rtcp/psfb/fullIntraRequest.js +30 -0
- package/dist/esm/lib/rtp/rtcp/psfb/index.js +35 -0
- package/dist/esm/lib/rtp/rtcp/psfb/pictureLossIndication.js +16 -0
- package/dist/esm/lib/rtp/rtcp/psfb/remb.js +49 -0
- package/dist/esm/lib/rtp/rtcp/rr.js +68 -0
- package/dist/esm/lib/rtp/rtcp/rtcp.js +53 -0
- package/dist/esm/lib/rtp/rtcp/rtpfb/const.js +1 -0
- package/dist/esm/lib/rtp/rtcp/rtpfb/index.js +31 -0
- package/dist/esm/lib/rtp/rtcp/rtpfb/nack.js +73 -0
- package/dist/esm/lib/rtp/rtcp/rtpfb/twcc.js +344 -0
- package/dist/esm/lib/rtp/rtcp/sdes.js +91 -0
- package/dist/esm/lib/rtp/rtcp/sr.js +104 -0
- package/dist/esm/lib/rtp/rtp/headerExtension.js +102 -0
- package/dist/esm/lib/rtp/rtp/red/encoder.js +40 -0
- package/dist/esm/lib/rtp/rtp/red/handler.js +55 -0
- package/dist/esm/lib/rtp/rtp/red/packet.js +107 -0
- package/dist/esm/lib/rtp/rtp/rtp.js +266 -0
- package/dist/esm/lib/rtp/rtp/rtx.js +25 -0
- package/dist/esm/lib/rtp/srtp/cipher/ctr.js +103 -0
- package/dist/esm/lib/rtp/srtp/cipher/gcm.js +141 -0
- package/dist/esm/lib/rtp/srtp/cipher/index.js +20 -0
- package/dist/esm/lib/rtp/srtp/const.js +21 -0
- package/dist/esm/lib/rtp/srtp/context/context.js +175 -0
- package/dist/esm/lib/rtp/srtp/context/srtcp.js +21 -0
- package/dist/esm/lib/rtp/srtp/context/srtp.js +37 -0
- package/dist/esm/lib/rtp/srtp/error.js +6 -0
- package/dist/esm/lib/rtp/srtp/packet.js +42 -0
- package/dist/esm/lib/rtp/srtp/session.js +9 -0
- package/dist/esm/lib/rtp/srtp/srtcp.js +17 -0
- package/dist/esm/lib/rtp/srtp/srtp.js +16 -0
- package/dist/esm/lib/rtp/transport.js +18 -0
- package/dist/esm/lib/rtp/util.js +24 -0
- package/dist/esm/lib/sctp/chunk.js +515 -0
- package/dist/esm/lib/sctp/const.js +19 -0
- package/dist/esm/lib/sctp/helper.js +10 -0
- package/dist/esm/lib/sctp/imports/common.js +1 -0
- package/dist/esm/lib/sctp/index.js +4 -0
- package/dist/esm/lib/sctp/param.js +126 -0
- package/dist/esm/lib/sctp/sctp.js +1459 -0
- package/dist/esm/lib/sctp/transport.js +23 -0
- package/dist/esm/lib/turn/index.js +9 -0
- package/dist/esm/lib/turn/node/server.js +89 -0
- package/dist/esm/lib/turn/node/turnServer.js +560 -0
- package/dist/esm/lib/turn/protocol.js +112 -0
- package/dist/esm/lib/turn/stun/attributes.js +198 -0
- package/dist/esm/lib/turn/stun/const.js +82 -0
- package/dist/esm/lib/turn/stun/ip.js +81 -0
- package/dist/esm/lib/turn/stun/message.js +174 -0
- package/dist/esm/lib/turn/turn/auth.js +6 -0
- package/dist/esm/lib/turn/turn/frame.js +61 -0
- package/dist/esm/lib/turn/turn/protocol.js +781 -0
- package/dist/esm/peer/Endpoints.js +143 -0
- package/dist/esm/peer/EngineConfig.js +33 -0
- package/dist/esm/peer/EngineConnection.js +22 -0
- package/dist/esm/peer/Events.js +81 -0
- package/dist/esm/peer/MediaCodecs.js +47 -0
- package/dist/esm/peer/MediaTrack.js +305 -0
- package/dist/esm/peer/PeerChannel.js +315 -0
- package/dist/esm/peer/PeerConnection.js +694 -0
- package/dist/esm/peer/PeerThreadChannel.js +266 -0
- package/dist/esm/peer/PeerThreadProtocol.js +1 -0
- package/dist/esm/peer/PeerThreads.js +264 -0
- package/dist/esm/peer/PeerWorker.js +458 -0
- package/dist/esm/peer/PeerWorkerCode.js +1 -0
- package/dist/esm/peer/RemoteConnection.js +905 -0
- package/dist/esm/peer/RtpPacket.js +86 -0
- package/dist/esm/peer/RtpTransceiver.js +225 -0
- package/dist/esm/peer/SignalingClient.js +249 -0
- package/dist/esm/protocol/SignalingProtocol.js +62 -0
- package/dist/esm/service/WebRTCServiceEntrypoint.js +352 -0
- package/dist/esm/sfu/SFU.js +759 -0
- package/dist/esm/sfu/SFUAccess.js +12 -0
- package/dist/esm/sfu/SFUClusterLeg.js +102 -0
- package/dist/esm/sfu/SFURoom.js +1296 -0
- package/dist/esm/sfu/SFUWorker.js +165 -0
- package/dist/esm/sfu/SFUWorkerChannel.js +101 -0
- package/dist/esm/sfu/SFUWorkerCode.js +1 -0
- package/dist/esm/sfu/SFUWorkers.js +547 -0
- package/dist/esm/shared/ChunkedChannel.js +178 -0
- package/dist/esm/shared/Connections.js +1 -0
- package/dist/esm/shared/Emitter.js +76 -0
- package/dist/esm/shared/Peer.js +505 -0
- package/dist/esm/shared/PeerServiceProxy.js +299 -0
- package/dist/esm/shared/Room.js +511 -0
- package/dist/esm/shared/SignalingError.js +43 -0
- package/dist/esm/shared/SignalingSession.js +343 -0
- package/dist/esm/shared/Transports.js +279 -0
- package/dist/esm/signaling/MediaServers.js +13 -0
- package/dist/esm/signaling/Signaling.js +941 -0
- package/dist/esm/signaling/SignalingController.js +225 -0
- package/dist/esm/turn/TURNCredentials.js +44 -0
- package/dist/esm/turn/TURNIceServers.js +22 -0
- package/dist/esm/turn/TURNServer.js +327 -0
- package/dist/esm/turn/TURNWorker.js +49 -0
- package/dist/esm/turn/TURNWorkerCode.js +1 -0
- package/dist/esm/turn/TURNWorkers.js +206 -0
- package/dist/esm/whep/WHEP.js +422 -0
- package/dist/esm/whep/WHEPController.js +298 -0
- package/dist/esm/whip/WHIP.js +466 -0
- package/dist/esm/whip/WHIPController.js +296 -0
- package/dist/types/client/SignalingConnection.d.ts +81 -0
- package/dist/types/cluster/Cluster.d.ts +503 -0
- package/dist/types/cluster/ClusterFrames.d.ts +24 -0
- package/dist/types/cluster/ClusterTURN.d.ts +63 -0
- package/dist/types/cluster/Rendezvous.d.ts +8 -0
- package/dist/types/cluster/transports/ClusterTransport.d.ts +34 -0
- package/dist/types/cluster/transports/LoadClient.d.ts +6 -0
- package/dist/types/cluster/transports/MemoryClusterTransport.d.ts +13 -0
- package/dist/types/cluster/transports/NATSClusterTransport.d.ts +23 -0
- package/dist/types/cluster/transports/RedisClusterTransport.d.ts +23 -0
- package/dist/types/exceptions/ClusterRequestException.d.ts +11 -0
- package/dist/types/exceptions/ClusterTimeoutException.d.ts +10 -0
- package/dist/types/exceptions/ClusterTransportNotFoundException.d.ts +11 -0
- package/dist/types/exceptions/SignalingClientRequiredException.d.ts +12 -0
- package/dist/types/exceptions/SignalingConnectionException.d.ts +12 -0
- package/dist/types/exceptions/SignalingDeniedException.d.ts +11 -0
- package/dist/types/exceptions/SignalingLimitException.d.ts +11 -0
- package/dist/types/exceptions/SignalingNotAMemberException.d.ts +11 -0
- package/dist/types/exceptions/WHEPDeniedException.d.ts +15 -0
- package/dist/types/exceptions/WHEPLimitException.d.ts +15 -0
- package/dist/types/exceptions/WHEPMediaTypeException.d.ts +15 -0
- package/dist/types/exceptions/WHEPOfferException.d.ts +16 -0
- package/dist/types/exceptions/WHEPSessionNotFoundException.d.ts +15 -0
- package/dist/types/exceptions/WHIPDeniedException.d.ts +15 -0
- package/dist/types/exceptions/WHIPLimitException.d.ts +15 -0
- package/dist/types/exceptions/WHIPMediaTypeException.d.ts +15 -0
- package/dist/types/exceptions/WHIPOfferException.d.ts +16 -0
- package/dist/types/exceptions/WHIPSessionNotFoundException.d.ts +15 -0
- package/dist/types/exports/Client.d.ts +11 -0
- package/dist/types/exports/WebRTC.d.ts +48 -0
- package/dist/types/lib/common/binary.d.ts +51 -0
- package/dist/types/lib/common/binaryData.d.ts +116 -0
- package/dist/types/lib/common/crc.d.ts +4 -0
- package/dist/types/lib/common/deque.d.ts +36 -0
- package/dist/types/lib/common/event.d.ts +48 -0
- package/dist/types/lib/common/index.d.ts +11 -0
- package/dist/types/lib/common/log.d.ts +47 -0
- package/dist/types/lib/common/network.d.ts +10 -0
- package/dist/types/lib/common/number.d.ts +13 -0
- package/dist/types/lib/common/promise.d.ts +21 -0
- package/dist/types/lib/common/transport.d.ts +104 -0
- package/dist/types/lib/common/type.d.ts +3 -0
- package/dist/types/lib/dtls/cipher/const.d.ts +42 -0
- package/dist/types/lib/dtls/cipher/create.d.ts +21 -0
- package/dist/types/lib/dtls/cipher/ec.d.ts +28 -0
- package/dist/types/lib/dtls/cipher/key-exchange.d.ts +43 -0
- package/dist/types/lib/dtls/cipher/namedCurve.d.ts +7 -0
- package/dist/types/lib/dtls/cipher/prf.d.ts +17 -0
- package/dist/types/lib/dtls/cipher/suites/abstract.d.ts +40 -0
- package/dist/types/lib/dtls/cipher/suites/aead.d.ts +28 -0
- package/dist/types/lib/dtls/cipher/suites/null.d.ts +24 -0
- package/dist/types/lib/dtls/cipher/utils.d.ts +18 -0
- package/dist/types/lib/dtls/cipher/x509.d.ts +33 -0
- package/dist/types/lib/dtls/client.d.ts +7 -0
- package/dist/types/lib/dtls/context/cipher.d.ts +42 -0
- package/dist/types/lib/dtls/context/dtls.d.ts +38 -0
- package/dist/types/lib/dtls/context/srtp.d.ts +5 -0
- package/dist/types/lib/dtls/context/transport.d.ts +8 -0
- package/dist/types/lib/dtls/flight/client/flight1.d.ts +10 -0
- package/dist/types/lib/dtls/flight/client/flight3.d.ts +8 -0
- package/dist/types/lib/dtls/flight/client/flight5.d.ts +18 -0
- package/dist/types/lib/dtls/flight/flight.d.ts +18 -0
- package/dist/types/lib/dtls/flight/server/flight2.d.ts +6 -0
- package/dist/types/lib/dtls/flight/server/flight4.d.ts +17 -0
- package/dist/types/lib/dtls/flight/server/flight6.d.ts +13 -0
- package/dist/types/lib/dtls/handshake/binary.d.ts +16 -0
- package/dist/types/lib/dtls/handshake/const.d.ts +13 -0
- package/dist/types/lib/dtls/handshake/extensions/ellipticCurves.d.ts +17 -0
- package/dist/types/lib/dtls/handshake/extensions/extendedMasterSecret.d.ts +3 -0
- package/dist/types/lib/dtls/handshake/extensions/renegotiationIndication.d.ts +18 -0
- package/dist/types/lib/dtls/handshake/extensions/signature.d.ts +26 -0
- package/dist/types/lib/dtls/handshake/extensions/useSrtp.d.ts +19 -0
- package/dist/types/lib/dtls/handshake/message/alert.d.ts +12 -0
- package/dist/types/lib/dtls/handshake/message/certificate.d.ts +17 -0
- package/dist/types/lib/dtls/handshake/message/changeCipherSpec.d.ts +11 -0
- package/dist/types/lib/dtls/handshake/message/client/certificateVerify.d.ts +20 -0
- package/dist/types/lib/dtls/handshake/message/client/hello.d.ts +50 -0
- package/dist/types/lib/dtls/handshake/message/client/keyExchange.d.ts +17 -0
- package/dist/types/lib/dtls/handshake/message/finished.d.ts +13 -0
- package/dist/types/lib/dtls/handshake/message/server/certificateRequest.d.ts +31 -0
- package/dist/types/lib/dtls/handshake/message/server/hello.d.ts +33 -0
- package/dist/types/lib/dtls/handshake/message/server/helloDone.d.ts +12 -0
- package/dist/types/lib/dtls/handshake/message/server/helloVerifyRequest.d.ts +32 -0
- package/dist/types/lib/dtls/handshake/message/server/keyExchange.d.ts +32 -0
- package/dist/types/lib/dtls/handshake/random.d.ts +13 -0
- package/dist/types/lib/dtls/helper.d.ts +4 -0
- package/dist/types/lib/dtls/imports/common.d.ts +1 -0
- package/dist/types/lib/dtls/imports/rtp.d.ts +1 -0
- package/dist/types/lib/dtls/index.d.ts +7 -0
- package/dist/types/lib/dtls/record/antiReplayWindow.d.ts +27 -0
- package/dist/types/lib/dtls/record/builder.d.ts +9 -0
- package/dist/types/lib/dtls/record/const.d.ts +33 -0
- package/dist/types/lib/dtls/record/message/fragment.d.ts +26 -0
- package/dist/types/lib/dtls/record/message/header.d.ts +38 -0
- package/dist/types/lib/dtls/record/message/plaintext.d.ts +14 -0
- package/dist/types/lib/dtls/record/receive.d.ts +9 -0
- package/dist/types/lib/dtls/server.d.ts +6 -0
- package/dist/types/lib/dtls/socket.d.ts +52 -0
- package/dist/types/lib/dtls/typings/domain.d.ts +20 -0
- package/dist/types/lib/dtls/util/binary.d.ts +2 -0
- package/dist/types/lib/ice/candidate.d.ts +35 -0
- package/dist/types/lib/ice/dns/lookup.d.ts +16 -0
- package/dist/types/lib/ice/dns/mdns.d.ts +38 -0
- package/dist/types/lib/ice/exceptions.d.ts +24 -0
- package/dist/types/lib/ice/helper.d.ts +17 -0
- package/dist/types/lib/ice/ice.d.ts +182 -0
- package/dist/types/lib/ice/iceBase.d.ts +214 -0
- package/dist/types/lib/ice/imports/common.d.ts +1 -0
- package/dist/types/lib/ice/index.d.ts +12 -0
- package/dist/types/lib/ice/internal/selectAddresses.d.ts +9 -0
- package/dist/types/lib/ice/stun/attributes.d.ts +1 -0
- package/dist/types/lib/ice/stun/const.d.ts +8 -0
- package/dist/types/lib/ice/stun/message.d.ts +1 -0
- package/dist/types/lib/ice/stun/protocol.d.ts +30 -0
- package/dist/types/lib/ice/stun/tcpFrame.d.ts +5 -0
- package/dist/types/lib/ice/stun/tcpProtocol.d.ts +57 -0
- package/dist/types/lib/ice/stun/transaction.d.ts +75 -0
- package/dist/types/lib/ice/turn/frame.d.ts +1 -0
- package/dist/types/lib/ice/turn/protocol.d.ts +170 -0
- package/dist/types/lib/ice/types/model.d.ts +56 -0
- package/dist/types/lib/ice/utils.d.ts +13 -0
- package/dist/types/lib/peer/const.d.ts +36 -0
- package/dist/types/lib/peer/dataChannel.d.ts +69 -0
- package/dist/types/lib/peer/errors.d.ts +11 -0
- package/dist/types/lib/peer/helper.d.ts +20 -0
- package/dist/types/lib/peer/imports/common.d.ts +1 -0
- package/dist/types/lib/peer/imports/dtls.d.ts +1 -0
- package/dist/types/lib/peer/imports/ice.d.ts +1 -0
- package/dist/types/lib/peer/imports/rtp.d.ts +1 -0
- package/dist/types/lib/peer/index.d.ts +14 -0
- package/dist/types/lib/peer/media/codec.d.ts +15 -0
- package/dist/types/lib/peer/media/codecCompatibility.d.ts +23 -0
- package/dist/types/lib/peer/media/extension/rtcpFeedback.d.ts +6 -0
- package/dist/types/lib/peer/media/extension/rtpExtension.d.ts +9 -0
- package/dist/types/lib/peer/media/index.d.ts +12 -0
- package/dist/types/lib/peer/media/parameters.d.ts +65 -0
- package/dist/types/lib/peer/media/receiver/nack.d.ts +23 -0
- package/dist/types/lib/peer/media/receiver/receiverTwcc.d.ts +47 -0
- package/dist/types/lib/peer/media/receiver/statistics.d.ts +22 -0
- package/dist/types/lib/peer/media/router.d.ts +25 -0
- package/dist/types/lib/peer/media/rtpReceiver.d.ts +90 -0
- package/dist/types/lib/peer/media/rtpSender.d.ts +209 -0
- package/dist/types/lib/peer/media/rtpTransceiver.d.ts +117 -0
- package/dist/types/lib/peer/media/sender/cumulativeResult.d.ts +19 -0
- package/dist/types/lib/peer/media/sender/senderBWE.d.ts +32 -0
- package/dist/types/lib/peer/media/stats.d.ts +293 -0
- package/dist/types/lib/peer/media/track.d.ts +67 -0
- package/dist/types/lib/peer/peerConnection.d.ts +458 -0
- package/dist/types/lib/peer/sctpManager.d.ts +28 -0
- package/dist/types/lib/peer/sdp.d.ts +97 -0
- package/dist/types/lib/peer/sdpManager.d.ts +116 -0
- package/dist/types/lib/peer/secureTransportManager.d.ts +96 -0
- package/dist/types/lib/peer/transceiverManager.d.ts +151 -0
- package/dist/types/lib/peer/transport/dtls.d.ts +95 -0
- package/dist/types/lib/peer/transport/ice.d.ts +143 -0
- package/dist/types/lib/peer/transport/sctp.d.ts +56 -0
- package/dist/types/lib/peer/types/domain.d.ts +5 -0
- package/dist/types/lib/peer/types/util.d.ts +2 -0
- package/dist/types/lib/peer/utils.d.ts +73 -0
- package/dist/types/lib/rtp/codec/av1.d.ts +56 -0
- package/dist/types/lib/rtp/codec/base.d.ts +8 -0
- package/dist/types/lib/rtp/codec/h264.d.ts +32 -0
- package/dist/types/lib/rtp/codec/index.d.ts +16 -0
- package/dist/types/lib/rtp/codec/leb128.d.ts +5 -0
- package/dist/types/lib/rtp/codec/opus.d.ts +9 -0
- package/dist/types/lib/rtp/codec/vp8.d.ts +27 -0
- package/dist/types/lib/rtp/codec/vp9.d.ts +46 -0
- package/dist/types/lib/rtp/const.d.ts +1 -0
- package/dist/types/lib/rtp/helper.d.ts +8 -0
- package/dist/types/lib/rtp/imports/common.d.ts +1 -0
- package/dist/types/lib/rtp/index.d.ts +25 -0
- package/dist/types/lib/rtp/rtcp/header.d.ts +13 -0
- package/dist/types/lib/rtp/rtcp/psfb/fullIntraRequest.d.ts +16 -0
- package/dist/types/lib/rtp/rtcp/psfb/index.d.ts +14 -0
- package/dist/types/lib/rtp/rtcp/psfb/pictureLossIndication.d.ts +10 -0
- package/dist/types/lib/rtp/rtcp/psfb/remb.d.ts +16 -0
- package/dist/types/lib/rtp/rtcp/rr.d.ts +32 -0
- package/dist/types/lib/rtp/rtcp/rtcp.d.ts +10 -0
- package/dist/types/lib/rtp/rtcp/rtpfb/const.d.ts +1 -0
- package/dist/types/lib/rtp/rtcp/rtpfb/index.d.ts +14 -0
- package/dist/types/lib/rtp/rtcp/rtpfb/nack.d.ts +17 -0
- package/dist/types/lib/rtp/rtcp/rtpfb/twcc.d.ts +71 -0
- package/dist/types/lib/rtp/rtcp/sdes.d.ts +26 -0
- package/dist/types/lib/rtp/rtcp/sr.d.ts +41 -0
- package/dist/types/lib/rtp/rtp/headerExtension.d.ts +72 -0
- package/dist/types/lib/rtp/rtp/red/encoder.d.ts +13 -0
- package/dist/types/lib/rtp/rtp/red/handler.d.ts +6 -0
- package/dist/types/lib/rtp/rtp/red/packet.d.ts +26 -0
- package/dist/types/lib/rtp/rtp/rtp.d.ts +44 -0
- package/dist/types/lib/rtp/rtp/rtx.d.ts +3 -0
- package/dist/types/lib/rtp/srtp/cipher/ctr.d.ts +16 -0
- package/dist/types/lib/rtp/srtp/cipher/gcm.d.ts +17 -0
- package/dist/types/lib/rtp/srtp/cipher/index.d.ts +13 -0
- package/dist/types/lib/rtp/srtp/const.d.ts +6 -0
- package/dist/types/lib/rtp/srtp/context/context.d.ts +45 -0
- package/dist/types/lib/rtp/srtp/context/srtcp.d.ts +8 -0
- package/dist/types/lib/rtp/srtp/context/srtp.d.ts +9 -0
- package/dist/types/lib/rtp/srtp/error.d.ts +3 -0
- package/dist/types/lib/rtp/srtp/packet.d.ts +5 -0
- package/dist/types/lib/rtp/srtp/session.d.ts +19 -0
- package/dist/types/lib/rtp/srtp/srtcp.d.ts +8 -0
- package/dist/types/lib/rtp/srtp/srtp.d.ts +9 -0
- package/dist/types/lib/rtp/transport.d.ts +15 -0
- package/dist/types/lib/rtp/util.d.ts +11 -0
- package/dist/types/lib/sctp/chunk.d.ts +164 -0
- package/dist/types/lib/sctp/const.d.ts +17 -0
- package/dist/types/lib/sctp/helper.d.ts +5 -0
- package/dist/types/lib/sctp/imports/common.d.ts +1 -0
- package/dist/types/lib/sctp/index.d.ts +6 -0
- package/dist/types/lib/sctp/param.d.ts +40 -0
- package/dist/types/lib/sctp/sctp.d.ts +210 -0
- package/dist/types/lib/sctp/transport.d.ts +15 -0
- package/dist/types/lib/turn/index.d.ts +9 -0
- package/dist/types/lib/turn/node/server.d.ts +21 -0
- package/dist/types/lib/turn/node/turnServer.d.ts +91 -0
- package/dist/types/lib/turn/protocol.d.ts +47 -0
- package/dist/types/lib/turn/stun/attributes.d.ts +37 -0
- package/dist/types/lib/turn/stun/const.d.ts +28 -0
- package/dist/types/lib/turn/stun/ip.d.ts +12 -0
- package/dist/types/lib/turn/stun/message.d.ts +37 -0
- package/dist/types/lib/turn/turn/auth.d.ts +1 -0
- package/dist/types/lib/turn/turn/frame.d.ts +13 -0
- package/dist/types/lib/turn/turn/protocol.d.ts +147 -0
- package/dist/types/peer/Endpoints.d.ts +75 -0
- package/dist/types/peer/EngineConfig.d.ts +20 -0
- package/dist/types/peer/EngineConnection.d.ts +22 -0
- package/dist/types/peer/Events.d.ts +55 -0
- package/dist/types/peer/MediaCodecs.d.ts +27 -0
- package/dist/types/peer/MediaTrack.d.ts +212 -0
- package/dist/types/peer/PeerChannel.d.ts +248 -0
- package/dist/types/peer/PeerConnection.d.ts +603 -0
- package/dist/types/peer/PeerThreadChannel.d.ts +112 -0
- package/dist/types/peer/PeerThreadProtocol.d.ts +325 -0
- package/dist/types/peer/PeerThreads.d.ts +114 -0
- package/dist/types/peer/PeerWorker.d.ts +6 -0
- package/dist/types/peer/PeerWorkerCode.d.ts +5 -0
- package/dist/types/peer/RemoteConnection.d.ts +314 -0
- package/dist/types/peer/RtpPacket.d.ts +112 -0
- package/dist/types/peer/RtpTransceiver.d.ts +167 -0
- package/dist/types/peer/SignalingClient.d.ts +236 -0
- package/dist/types/protocol/SignalingProtocol.d.ts +266 -0
- package/dist/types/service/WebRTCServiceEntrypoint.d.ts +158 -0
- package/dist/types/sfu/SFU.d.ts +356 -0
- package/dist/types/sfu/SFUAccess.d.ts +48 -0
- package/dist/types/sfu/SFUClusterLeg.d.ts +101 -0
- package/dist/types/sfu/SFURoom.d.ts +148 -0
- package/dist/types/sfu/SFUWorker.d.ts +13 -0
- package/dist/types/sfu/SFUWorkerChannel.d.ts +204 -0
- package/dist/types/sfu/SFUWorkerCode.d.ts +5 -0
- package/dist/types/sfu/SFUWorkers.d.ts +247 -0
- package/dist/types/shared/ChunkedChannel.d.ts +122 -0
- package/dist/types/shared/Connections.d.ts +231 -0
- package/dist/types/shared/Emitter.d.ts +50 -0
- package/dist/types/shared/Peer.d.ts +182 -0
- package/dist/types/shared/PeerServiceProxy.d.ts +173 -0
- package/dist/types/shared/Room.d.ts +143 -0
- package/dist/types/shared/SignalingError.d.ts +40 -0
- package/dist/types/shared/SignalingSession.d.ts +97 -0
- package/dist/types/shared/Transports.d.ts +139 -0
- package/dist/types/signaling/MediaServers.d.ts +40 -0
- package/dist/types/signaling/Signaling.d.ts +573 -0
- package/dist/types/signaling/SignalingController.d.ts +128 -0
- package/dist/types/turn/TURNCredentials.d.ts +49 -0
- package/dist/types/turn/TURNIceServers.d.ts +11 -0
- package/dist/types/turn/TURNServer.d.ts +309 -0
- package/dist/types/turn/TURNWorker.d.ts +42 -0
- package/dist/types/turn/TURNWorkerCode.d.ts +5 -0
- package/dist/types/turn/TURNWorkers.d.ts +52 -0
- package/dist/types/whep/WHEP.d.ts +386 -0
- package/dist/types/whep/WHEPController.d.ts +134 -0
- package/dist/types/whip/WHIP.d.ts +426 -0
- package/dist/types/whip/WHIPController.d.ts +132 -0
- package/package.json +115 -4
|
@@ -0,0 +1,309 @@
|
|
|
1
|
+
import { Component, type ComponentOptions } from '@lakutata/core';
|
|
2
|
+
import type { SignalingIceServer } from '../protocol/SignalingProtocol.js';
|
|
3
|
+
import { type TURNCredentials } from './TURNCredentials.js';
|
|
4
|
+
/**
|
|
5
|
+
* The TLS listener of a {@link TURNServer} (`turns:`), for the networks letting only TLS through (port 443).
|
|
6
|
+
*/
|
|
7
|
+
export interface TURNServerTLSOptions {
|
|
8
|
+
/**
|
|
9
|
+
* The certificate, in PEM.
|
|
10
|
+
*/
|
|
11
|
+
cert: string | Buffer;
|
|
12
|
+
/**
|
|
13
|
+
* Its private key, in PEM.
|
|
14
|
+
*/
|
|
15
|
+
key: string | Buffer;
|
|
16
|
+
/**
|
|
17
|
+
* The TCP port.
|
|
18
|
+
* @default 5349
|
|
19
|
+
*/
|
|
20
|
+
port?: number;
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* The options of a {@link TURNServer} (see {@link buildTURNServerOptions}).
|
|
24
|
+
*/
|
|
25
|
+
export interface TURNServerOptions {
|
|
26
|
+
/**
|
|
27
|
+
* The address the server listens on.
|
|
28
|
+
* @default '0.0.0.0'
|
|
29
|
+
*/
|
|
30
|
+
host?: string;
|
|
31
|
+
/**
|
|
32
|
+
* The port of STUN and TURN over UDP and TCP.
|
|
33
|
+
* @default 3478
|
|
34
|
+
*/
|
|
35
|
+
port?: number;
|
|
36
|
+
/**
|
|
37
|
+
* Whether to listen over UDP.
|
|
38
|
+
* @default true
|
|
39
|
+
*/
|
|
40
|
+
udp?: boolean;
|
|
41
|
+
/**
|
|
42
|
+
* Whether to listen over TCP.
|
|
43
|
+
* @default true
|
|
44
|
+
*/
|
|
45
|
+
tcp?: boolean;
|
|
46
|
+
/**
|
|
47
|
+
* The TLS listener (`turns:`); none by default.
|
|
48
|
+
*/
|
|
49
|
+
tls?: TURNServerTLSOptions;
|
|
50
|
+
/**
|
|
51
|
+
* The address the clients reach the server at, given in the ICE servers and the relayed addresses: the public
|
|
52
|
+
* address of the host (or of its NAT, its port mapping forwarding the ports).
|
|
53
|
+
* @default the first IPv4 address of the host that is not internal, else 127.0.0.1
|
|
54
|
+
*/
|
|
55
|
+
publicAddress?: string;
|
|
56
|
+
/**
|
|
57
|
+
* The UDP ports of the relays, as `[first, last]`: the range published by the container or opened in the firewall.
|
|
58
|
+
* @default any free port
|
|
59
|
+
*/
|
|
60
|
+
relayPortRange?: [number, number];
|
|
61
|
+
/**
|
|
62
|
+
* The secret of the short-lived credentials ({@link TURNServer.credentials}), shared with the TURN servers of the
|
|
63
|
+
* other instances (or with a coturn configured with `use-auth-secret`).
|
|
64
|
+
* @default a random secret, chosen when the server starts
|
|
65
|
+
*/
|
|
66
|
+
secret?: string;
|
|
67
|
+
/**
|
|
68
|
+
* Users with a fixed password, `{username: password}`, besides the short-lived credentials.
|
|
69
|
+
* @default none
|
|
70
|
+
*/
|
|
71
|
+
users?: Record<string, string>;
|
|
72
|
+
/**
|
|
73
|
+
* The realm of the long-term credentials.
|
|
74
|
+
* @default 'lakutata'
|
|
75
|
+
*/
|
|
76
|
+
realm?: string;
|
|
77
|
+
/**
|
|
78
|
+
* How long the short-lived credentials are valid, in seconds.
|
|
79
|
+
* @default 86400 (a day)
|
|
80
|
+
*/
|
|
81
|
+
credentialTtl?: number;
|
|
82
|
+
/**
|
|
83
|
+
* The allocations (relays) at once at most.
|
|
84
|
+
* @default no limit
|
|
85
|
+
*/
|
|
86
|
+
maxAllocations?: number;
|
|
87
|
+
/**
|
|
88
|
+
* Worker threads that serve the clients, to use more cores: the listeners of the threads share the ports of the
|
|
89
|
+
* server (`SO_REUSEPORT`), the system keeps each client on one of them, and that thread relays its traffic.
|
|
90
|
+
* `relayPortRange`, when given, is split among the threads and needs at least one port for each; `maxAllocations`
|
|
91
|
+
* counts the allocations of all the threads. A thread that stops (only a bug stops one) loses its allocations and
|
|
92
|
+
* is started again; meanwhile the system spreads the clients over UDP among the threads left, then among all of
|
|
93
|
+
* them, so most of them find their allocation gone, as when a TURN server restarts (the connections over TCP and
|
|
94
|
+
* TLS of the other threads stay). The ports can be shared on Linux; elsewhere (macOS, Windows), the server relays
|
|
95
|
+
* in the main thread and says so in the debug messages (`webrtc/turn`, see `setDebugHandler`). With 0, the server
|
|
96
|
+
* relays in the main thread.
|
|
97
|
+
* @default 0
|
|
98
|
+
*/
|
|
99
|
+
workers?: number;
|
|
100
|
+
/**
|
|
101
|
+
* The name of a {@link Cluster} component: the server tells the other nodes its address and its load, and the
|
|
102
|
+
* `Signaling` and `WHIP` components of all the nodes give it to their clients. It needs a `secret` shared by the
|
|
103
|
+
* TURN servers of the cluster.
|
|
104
|
+
* @default none
|
|
105
|
+
*/
|
|
106
|
+
cluster?: string;
|
|
107
|
+
}
|
|
108
|
+
/**
|
|
109
|
+
* Where the clients reach a TURN server: its address, the port of UDP and TCP, the port of TLS
|
|
110
|
+
*/
|
|
111
|
+
export interface TURNServerLocation {
|
|
112
|
+
/**
|
|
113
|
+
* The address the clients reach it at.
|
|
114
|
+
*/
|
|
115
|
+
readonly address: string;
|
|
116
|
+
/**
|
|
117
|
+
* The port of STUN and TURN over UDP and TCP.
|
|
118
|
+
*/
|
|
119
|
+
readonly port: number;
|
|
120
|
+
/**
|
|
121
|
+
* Whether it listens over UDP.
|
|
122
|
+
*/
|
|
123
|
+
readonly udp: boolean;
|
|
124
|
+
/**
|
|
125
|
+
* Whether it listens over TCP.
|
|
126
|
+
*/
|
|
127
|
+
readonly tcp: boolean;
|
|
128
|
+
/**
|
|
129
|
+
* The port of TURN over TLS, if it listens over TLS.
|
|
130
|
+
*/
|
|
131
|
+
readonly tlsPort?: number;
|
|
132
|
+
}
|
|
133
|
+
/**
|
|
134
|
+
* A STUN and TURN server inside the application (RFC 8489, RFC 8656): over UDP and TCP on port 3478, and over TLS when
|
|
135
|
+
* given a certificate. The browsers and the other clients use it to find their public address (STUN) and to relay their
|
|
136
|
+
* traffic when they cannot connect directly (TURN). It authenticates the clients with short-lived credentials made
|
|
137
|
+
* with its secret ({@link TURNServer.credentials}), as coturn's REST API does, and with the fixed users of its options;
|
|
138
|
+
* both use the SHA-1 integrity of RFC 5389, which the browsers require.
|
|
139
|
+
*
|
|
140
|
+
* Register it with {@link buildTURNServerOptions} and list it in `bootstrap` so that it listens when the application
|
|
141
|
+
* starts; the `Signaling` component gives its ICE servers and credentials to the members of the rooms. With a
|
|
142
|
+
* `cluster`, the server tells the other nodes where it is and how many allocations it has, and the signaling of every
|
|
143
|
+
* node gives the members the least loaded TURN servers of the cluster.
|
|
144
|
+
* @example
|
|
145
|
+
* ```typescript
|
|
146
|
+
* import {Application} from 'lakutata'
|
|
147
|
+
* import {buildTURNServerOptions, type TURNServer} from '@lakutata/webrtc'
|
|
148
|
+
*
|
|
149
|
+
* Application
|
|
150
|
+
* .run(() => ({
|
|
151
|
+
* id: 'turn.app',
|
|
152
|
+
* name: 'TURN',
|
|
153
|
+
* components: {
|
|
154
|
+
* //UDP and TCP on 3478, the relays on 49160-49200, reached at the public address of the host
|
|
155
|
+
* turn: buildTURNServerOptions({publicAddress: '203.0.113.10', relayPortRange: [49160, 49200], secret: process.env.TURN_SECRET})
|
|
156
|
+
* },
|
|
157
|
+
* bootstrap: ['turn']
|
|
158
|
+
* }))
|
|
159
|
+
* .onLaunched(async (app: Application): Promise<void> => {
|
|
160
|
+
* const turn: TURNServer = await app.getObject<TURNServer>('turn')
|
|
161
|
+
* //The ICE servers of a browser, with credentials for the user alice
|
|
162
|
+
* console.log(turn.iceServers('alice'))
|
|
163
|
+
* })
|
|
164
|
+
* ```
|
|
165
|
+
*/
|
|
166
|
+
export declare class TURNServer extends Component {
|
|
167
|
+
#private;
|
|
168
|
+
/**
|
|
169
|
+
* The address the server listens on.
|
|
170
|
+
*/
|
|
171
|
+
protected readonly host: string;
|
|
172
|
+
/**
|
|
173
|
+
* The port of STUN and TURN over UDP and TCP.
|
|
174
|
+
*/
|
|
175
|
+
protected readonly port: number;
|
|
176
|
+
/**
|
|
177
|
+
* Whether to listen over UDP.
|
|
178
|
+
*/
|
|
179
|
+
protected readonly udp: boolean;
|
|
180
|
+
/**
|
|
181
|
+
* Whether to listen over TCP.
|
|
182
|
+
*/
|
|
183
|
+
protected readonly tcp: boolean;
|
|
184
|
+
/**
|
|
185
|
+
* The TLS listener.
|
|
186
|
+
*/
|
|
187
|
+
protected readonly tls?: TURNServerTLSOptions;
|
|
188
|
+
/**
|
|
189
|
+
* The address the clients reach the server at.
|
|
190
|
+
*/
|
|
191
|
+
protected readonly publicAddress?: string;
|
|
192
|
+
/**
|
|
193
|
+
* The UDP ports of the relays.
|
|
194
|
+
*/
|
|
195
|
+
protected readonly relayPortRange?: [number, number];
|
|
196
|
+
/**
|
|
197
|
+
* The secret of the short-lived credentials.
|
|
198
|
+
*/
|
|
199
|
+
protected readonly secret?: string;
|
|
200
|
+
/**
|
|
201
|
+
* The users with a fixed password.
|
|
202
|
+
*/
|
|
203
|
+
protected readonly users: Record<string, string>;
|
|
204
|
+
/**
|
|
205
|
+
* The realm of the long-term credentials.
|
|
206
|
+
*/
|
|
207
|
+
protected readonly realm: string;
|
|
208
|
+
/**
|
|
209
|
+
* How long the short-lived credentials are valid, in seconds.
|
|
210
|
+
*/
|
|
211
|
+
protected readonly credentialTtl: number;
|
|
212
|
+
/**
|
|
213
|
+
* The allocations at once at most.
|
|
214
|
+
*/
|
|
215
|
+
protected readonly maxAllocations?: number;
|
|
216
|
+
/**
|
|
217
|
+
* The worker threads serving the clients.
|
|
218
|
+
*/
|
|
219
|
+
protected readonly workers: number;
|
|
220
|
+
/**
|
|
221
|
+
* The name of the cluster component.
|
|
222
|
+
*/
|
|
223
|
+
protected readonly cluster?: string;
|
|
224
|
+
/**
|
|
225
|
+
* Start listening.
|
|
226
|
+
* @protected
|
|
227
|
+
*/
|
|
228
|
+
protected init(): Promise<void>;
|
|
229
|
+
/**
|
|
230
|
+
* Leave the cluster, stop listening and close the relays.
|
|
231
|
+
* @protected
|
|
232
|
+
*/
|
|
233
|
+
protected destroy(): Promise<void>;
|
|
234
|
+
/**
|
|
235
|
+
* Tell the other nodes of the cluster where the server is and its load (sent with the next heartbeat).
|
|
236
|
+
* @protected
|
|
237
|
+
*/
|
|
238
|
+
protected announce(): void;
|
|
239
|
+
/**
|
|
240
|
+
* The address and the port of STUN and TURN over UDP and TCP, as the clients reach them (the public address).
|
|
241
|
+
*/
|
|
242
|
+
get address(): {
|
|
243
|
+
address: string;
|
|
244
|
+
port: number;
|
|
245
|
+
};
|
|
246
|
+
/**
|
|
247
|
+
* The address and the port of TURN over TLS, as the clients reach them; undefined without TLS.
|
|
248
|
+
*/
|
|
249
|
+
get tlsAddress(): {
|
|
250
|
+
address: string;
|
|
251
|
+
port: number;
|
|
252
|
+
} | undefined;
|
|
253
|
+
/**
|
|
254
|
+
* Where the clients reach the server: its public address, its ports.
|
|
255
|
+
*/
|
|
256
|
+
get location(): TURNServerLocation;
|
|
257
|
+
/**
|
|
258
|
+
* The allocations in use: the clients relaying their traffic through the server.
|
|
259
|
+
*/
|
|
260
|
+
get allocations(): number;
|
|
261
|
+
/**
|
|
262
|
+
* Create short-lived credentials for a user, valid for `credentialTtl` seconds.
|
|
263
|
+
* @param user The user (the part of the username after the expiry).
|
|
264
|
+
* @returns The username, the password and their lifetime in seconds.
|
|
265
|
+
* @example
|
|
266
|
+
* ```typescript
|
|
267
|
+
* import type {TURNServer, TURNCredentials} from '@lakutata/webrtc'
|
|
268
|
+
*
|
|
269
|
+
* declare const turn: TURNServer
|
|
270
|
+
* const credentials: TURNCredentials = turn.credentials('alice')
|
|
271
|
+
* ```
|
|
272
|
+
*/
|
|
273
|
+
credentials(user?: string): TURNCredentials;
|
|
274
|
+
/**
|
|
275
|
+
* The ICE servers of a client, as `RTCIceServer` objects: STUN, then TURN over UDP and TCP, then over TLS when it
|
|
276
|
+
* listens over TLS, with short-lived credentials for the user.
|
|
277
|
+
* @param user The user the credentials are for.
|
|
278
|
+
* @returns The ICE servers.
|
|
279
|
+
* @example
|
|
280
|
+
* ```typescript
|
|
281
|
+
* import type {SignalingIceServer, TURNServer} from '@lakutata/webrtc'
|
|
282
|
+
*
|
|
283
|
+
* declare const turn: TURNServer
|
|
284
|
+
* //[{urls: 'stun:203.0.113.10:3478'}, {urls: ['turn:203.0.113.10:3478?transport=udp', …], username, credential}]
|
|
285
|
+
* const iceServers: SignalingIceServer[] = turn.iceServers('alice')
|
|
286
|
+
* ```
|
|
287
|
+
*/
|
|
288
|
+
iceServers(user?: string): SignalingIceServer[];
|
|
289
|
+
}
|
|
290
|
+
/**
|
|
291
|
+
* Build the options of a {@link TURNServer} component, for the `components` of an application.
|
|
292
|
+
* @param options Where it listens, the address the clients reach it at, the relay ports, the credentials (all optional).
|
|
293
|
+
* @returns The component options.
|
|
294
|
+
* @example
|
|
295
|
+
* ```typescript
|
|
296
|
+
* import {Application} from 'lakutata'
|
|
297
|
+
* import {buildTURNServerOptions} from '@lakutata/webrtc'
|
|
298
|
+
*
|
|
299
|
+
* Application.run(() => ({
|
|
300
|
+
* id: 'turn.app',
|
|
301
|
+
* name: 'TURN',
|
|
302
|
+
* components: {
|
|
303
|
+
* turn: buildTURNServerOptions({publicAddress: '203.0.113.10', secret: process.env.TURN_SECRET})
|
|
304
|
+
* },
|
|
305
|
+
* bootstrap: ['turn']
|
|
306
|
+
* }))
|
|
307
|
+
* ```
|
|
308
|
+
*/
|
|
309
|
+
export declare function buildTURNServerOptions(options?: TURNServerOptions): ComponentOptions<TURNServerOptions>;
|
|
@@ -0,0 +1,331 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
+
};
|
|
8
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
|
+
};
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.TURNServer = void 0;
|
|
13
|
+
exports.buildTURNServerOptions = buildTURNServerOptions;
|
|
14
|
+
const node_crypto_1 = require("node:crypto");
|
|
15
|
+
const node_os_1 = require("node:os");
|
|
16
|
+
const core_1 = require("@lakutata/core");
|
|
17
|
+
const di_1 = require("@lakutata/core/decorator/di");
|
|
18
|
+
const turnServer_js_1 = require("../lib/turn/node/turnServer.js");
|
|
19
|
+
const log_js_1 = require("../lib/common/log.js");
|
|
20
|
+
const TURNCredentials_js_1 = require("./TURNCredentials.js");
|
|
21
|
+
const TURNIceServers_js_1 = require("./TURNIceServers.js");
|
|
22
|
+
const TURNWorkers_js_1 = require("./TURNWorkers.js");
|
|
23
|
+
const log = (0, log_js_1.debug)('webrtc/turn');
|
|
24
|
+
/**
|
|
25
|
+
* How often a server in a cluster tells its load, in milliseconds
|
|
26
|
+
*/
|
|
27
|
+
const ANNOUNCE_INTERVAL = 1000;
|
|
28
|
+
//The first IPv4 address of the host that is not internal
|
|
29
|
+
function defaultPublicAddress() {
|
|
30
|
+
for (const addresses of Object.values((0, node_os_1.networkInterfaces)())) {
|
|
31
|
+
const address = addresses?.find((info) => info.family === 'IPv4' && !info.internal);
|
|
32
|
+
if (address)
|
|
33
|
+
return address.address;
|
|
34
|
+
}
|
|
35
|
+
return '127.0.0.1';
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* A STUN and TURN server inside the application (RFC 8489, RFC 8656): over UDP and TCP on port 3478, and over TLS when
|
|
39
|
+
* given a certificate. The browsers and the other clients use it to find their public address (STUN) and to relay their
|
|
40
|
+
* traffic when they cannot connect directly (TURN). It authenticates the clients with short-lived credentials made
|
|
41
|
+
* with its secret ({@link TURNServer.credentials}), as coturn's REST API does, and with the fixed users of its options;
|
|
42
|
+
* both use the SHA-1 integrity of RFC 5389, which the browsers require.
|
|
43
|
+
*
|
|
44
|
+
* Register it with {@link buildTURNServerOptions} and list it in `bootstrap` so that it listens when the application
|
|
45
|
+
* starts; the `Signaling` component gives its ICE servers and credentials to the members of the rooms. With a
|
|
46
|
+
* `cluster`, the server tells the other nodes where it is and how many allocations it has, and the signaling of every
|
|
47
|
+
* node gives the members the least loaded TURN servers of the cluster.
|
|
48
|
+
* @example
|
|
49
|
+
* ```typescript
|
|
50
|
+
* import {Application} from 'lakutata'
|
|
51
|
+
* import {buildTURNServerOptions, type TURNServer} from '@lakutata/webrtc'
|
|
52
|
+
*
|
|
53
|
+
* Application
|
|
54
|
+
* .run(() => ({
|
|
55
|
+
* id: 'turn.app',
|
|
56
|
+
* name: 'TURN',
|
|
57
|
+
* components: {
|
|
58
|
+
* //UDP and TCP on 3478, the relays on 49160-49200, reached at the public address of the host
|
|
59
|
+
* turn: buildTURNServerOptions({publicAddress: '203.0.113.10', relayPortRange: [49160, 49200], secret: process.env.TURN_SECRET})
|
|
60
|
+
* },
|
|
61
|
+
* bootstrap: ['turn']
|
|
62
|
+
* }))
|
|
63
|
+
* .onLaunched(async (app: Application): Promise<void> => {
|
|
64
|
+
* const turn: TURNServer = await app.getObject<TURNServer>('turn')
|
|
65
|
+
* //The ICE servers of a browser, with credentials for the user alice
|
|
66
|
+
* console.log(turn.iceServers('alice'))
|
|
67
|
+
* })
|
|
68
|
+
* ```
|
|
69
|
+
*/
|
|
70
|
+
let TURNServer = class TURNServer extends core_1.Component {
|
|
71
|
+
#server;
|
|
72
|
+
#workers;
|
|
73
|
+
#announcer;
|
|
74
|
+
#clusterObject;
|
|
75
|
+
#secret;
|
|
76
|
+
#publicAddress;
|
|
77
|
+
/**
|
|
78
|
+
* Start listening.
|
|
79
|
+
* @protected
|
|
80
|
+
*/
|
|
81
|
+
async init() {
|
|
82
|
+
//The servers of a cluster check the credentials made by the other nodes
|
|
83
|
+
if (this.cluster && !this.secret)
|
|
84
|
+
throw new core_1.InvalidValueException('A TURN server in a cluster needs the secret shared by the TURN servers of the cluster');
|
|
85
|
+
this.#secret = this.secret ?? (0, node_crypto_1.randomBytes)(32).toString('base64url');
|
|
86
|
+
this.#publicAddress = this.publicAddress ?? defaultPublicAddress();
|
|
87
|
+
const options = {
|
|
88
|
+
host: this.host,
|
|
89
|
+
port: this.port,
|
|
90
|
+
udp: this.udp,
|
|
91
|
+
tcp: this.tcp,
|
|
92
|
+
relayAddress: this.#publicAddress,
|
|
93
|
+
relayBindAddress: this.host,
|
|
94
|
+
relayPortRange: this.relayPortRange,
|
|
95
|
+
realm: this.realm,
|
|
96
|
+
//No limit unless given (the engine has one of 256)
|
|
97
|
+
maxAllocations: this.maxAllocations ?? Infinity,
|
|
98
|
+
getPassword: (username) => this.users[username] ?? (0, TURNCredentials_js_1.turnPasswordIfValid)(this.#secret, username)
|
|
99
|
+
};
|
|
100
|
+
if (this.tls)
|
|
101
|
+
options.tls = { cert: this.tls.cert, key: this.tls.key, port: this.tls.port };
|
|
102
|
+
if (this.workers) {
|
|
103
|
+
//Checked on every system, the ports shared or not
|
|
104
|
+
const ranges = this.#relayPortRanges();
|
|
105
|
+
if (await (0, TURNWorkers_js_1.portsShareable)(this.host))
|
|
106
|
+
await this.#startWorkers(options, ranges);
|
|
107
|
+
else
|
|
108
|
+
log('the ports cannot be shared among threads here (SO_REUSEPORT): the server relays in the main thread, not in %d worker threads', this.workers);
|
|
109
|
+
}
|
|
110
|
+
if (!this.#workers) {
|
|
111
|
+
this.#server = new turnServer_js_1.NodeTurnServer(options);
|
|
112
|
+
await this.#server.listen();
|
|
113
|
+
}
|
|
114
|
+
if (this.cluster) {
|
|
115
|
+
const cluster = await this.getObject(this.cluster);
|
|
116
|
+
this.#clusterObject = cluster;
|
|
117
|
+
this.announce();
|
|
118
|
+
this.#announcer = setInterval(() => this.announce(), ANNOUNCE_INTERVAL);
|
|
119
|
+
this.#announcer.unref();
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
/**
|
|
123
|
+
* Leave the cluster, stop listening and close the relays.
|
|
124
|
+
* @protected
|
|
125
|
+
*/
|
|
126
|
+
async destroy() {
|
|
127
|
+
clearInterval(this.#announcer);
|
|
128
|
+
this.#clusterObject?.announce('turn', undefined);
|
|
129
|
+
await this.#workers?.stop();
|
|
130
|
+
await this.#server?.close();
|
|
131
|
+
}
|
|
132
|
+
/**
|
|
133
|
+
* The part of the relay ports of each worker thread
|
|
134
|
+
* @throws {RangeError} When the range has fewer ports than there are threads.
|
|
135
|
+
*/
|
|
136
|
+
#relayPortRanges() {
|
|
137
|
+
return Array.from({ length: this.workers }, (_, index) => {
|
|
138
|
+
if (!this.relayPortRange)
|
|
139
|
+
return undefined;
|
|
140
|
+
const [first, last] = this.relayPortRange;
|
|
141
|
+
const size = last - first + 1;
|
|
142
|
+
if (size < this.workers)
|
|
143
|
+
throw new RangeError(`The relay port range has ${size} ports, fewer than the ${this.workers} worker threads`);
|
|
144
|
+
return [first + Math.floor(index * size / this.workers), first + Math.floor((index + 1) * size / this.workers) - 1];
|
|
145
|
+
});
|
|
146
|
+
}
|
|
147
|
+
/**
|
|
148
|
+
* Start the worker threads, each with its part of the relay ports and the credentials (functions stay in the main
|
|
149
|
+
* thread)
|
|
150
|
+
* @param options The options of the server of each thread.
|
|
151
|
+
* @param ranges The part of the relay ports of each.
|
|
152
|
+
*/
|
|
153
|
+
async #startWorkers(options, ranges) {
|
|
154
|
+
const { getPassword, ...shared } = options;
|
|
155
|
+
const allocations = new SharedArrayBuffer(Int32Array.BYTES_PER_ELEMENT * (1 + this.workers));
|
|
156
|
+
const workers = new TURNWorkers_js_1.TURNWorkers(ranges.map((range, thread) => ({
|
|
157
|
+
thread: thread,
|
|
158
|
+
//A Buffer given to a thread arrives as a Uint8Array: the certificate and its key in PEM, as text
|
|
159
|
+
options: { ...shared, relayPortRange: range, ...this.tls ? { tls: { ...shared.tls, cert: this.tls.cert.toString(), key: this.tls.key.toString() } } : {} },
|
|
160
|
+
users: this.users,
|
|
161
|
+
secret: this.#secret,
|
|
162
|
+
allocations: allocations
|
|
163
|
+
})));
|
|
164
|
+
try {
|
|
165
|
+
await workers.start();
|
|
166
|
+
}
|
|
167
|
+
catch (error) {
|
|
168
|
+
await workers.stop();
|
|
169
|
+
throw error;
|
|
170
|
+
}
|
|
171
|
+
this.#workers = workers;
|
|
172
|
+
TURNWorkers_js_1.turnWorkers.set(this, workers);
|
|
173
|
+
}
|
|
174
|
+
/**
|
|
175
|
+
* Tell the other nodes of the cluster where the server is and its load (sent with the next heartbeat).
|
|
176
|
+
* @protected
|
|
177
|
+
*/
|
|
178
|
+
announce() {
|
|
179
|
+
this.#clusterObject?.announce('turn', {
|
|
180
|
+
...this.location,
|
|
181
|
+
allocations: this.allocations,
|
|
182
|
+
maxAllocations: this.maxAllocations,
|
|
183
|
+
credentialTtl: this.credentialTtl
|
|
184
|
+
});
|
|
185
|
+
}
|
|
186
|
+
/**
|
|
187
|
+
* The address and the port of STUN and TURN over UDP and TCP, as the clients reach them (the public address).
|
|
188
|
+
*/
|
|
189
|
+
get address() {
|
|
190
|
+
return { address: this.#publicAddress, port: (this.#workers ? this.#workers.port : this.#server?.address?.[1]) ?? this.port };
|
|
191
|
+
}
|
|
192
|
+
/**
|
|
193
|
+
* The address and the port of TURN over TLS, as the clients reach them; undefined without TLS.
|
|
194
|
+
*/
|
|
195
|
+
get tlsAddress() {
|
|
196
|
+
const port = this.#workers ? this.#workers.tlsPort : this.#server?.tlsAddress?.[1];
|
|
197
|
+
return port !== undefined ? { address: this.#publicAddress, port: port } : undefined;
|
|
198
|
+
}
|
|
199
|
+
/**
|
|
200
|
+
* Where the clients reach the server: its public address, its ports.
|
|
201
|
+
*/
|
|
202
|
+
get location() {
|
|
203
|
+
const { address, port } = this.address;
|
|
204
|
+
const tls = this.tlsAddress;
|
|
205
|
+
return { address: address, port: port, udp: this.udp, tcp: this.tcp, ...tls ? { tlsPort: tls.port } : {} };
|
|
206
|
+
}
|
|
207
|
+
/**
|
|
208
|
+
* The allocations in use: the clients relaying their traffic through the server.
|
|
209
|
+
*/
|
|
210
|
+
get allocations() {
|
|
211
|
+
return this.#workers ? this.#workers.allocations : this.#server?.protocol.allocationCount ?? 0;
|
|
212
|
+
}
|
|
213
|
+
/**
|
|
214
|
+
* Create short-lived credentials for a user, valid for `credentialTtl` seconds.
|
|
215
|
+
* @param user The user (the part of the username after the expiry).
|
|
216
|
+
* @returns The username, the password and their lifetime in seconds.
|
|
217
|
+
* @example
|
|
218
|
+
* ```typescript
|
|
219
|
+
* import type {TURNServer, TURNCredentials} from '@lakutata/webrtc'
|
|
220
|
+
*
|
|
221
|
+
* declare const turn: TURNServer
|
|
222
|
+
* const credentials: TURNCredentials = turn.credentials('alice')
|
|
223
|
+
* ```
|
|
224
|
+
*/
|
|
225
|
+
credentials(user = 'anonymous') {
|
|
226
|
+
return (0, TURNCredentials_js_1.createTURNCredentials)(this.#secret, user, this.credentialTtl);
|
|
227
|
+
}
|
|
228
|
+
/**
|
|
229
|
+
* The ICE servers of a client, as `RTCIceServer` objects: STUN, then TURN over UDP and TCP, then over TLS when it
|
|
230
|
+
* listens over TLS, with short-lived credentials for the user.
|
|
231
|
+
* @param user The user the credentials are for.
|
|
232
|
+
* @returns The ICE servers.
|
|
233
|
+
* @example
|
|
234
|
+
* ```typescript
|
|
235
|
+
* import type {SignalingIceServer, TURNServer} from '@lakutata/webrtc'
|
|
236
|
+
*
|
|
237
|
+
* declare const turn: TURNServer
|
|
238
|
+
* //[{urls: 'stun:203.0.113.10:3478'}, {urls: ['turn:203.0.113.10:3478?transport=udp', …], username, credential}]
|
|
239
|
+
* const iceServers: SignalingIceServer[] = turn.iceServers('alice')
|
|
240
|
+
* ```
|
|
241
|
+
*/
|
|
242
|
+
iceServers(user = 'anonymous') {
|
|
243
|
+
return (0, TURNIceServers_js_1.iceServersOfTURN)(this.location, this.credentials(user));
|
|
244
|
+
}
|
|
245
|
+
};
|
|
246
|
+
exports.TURNServer = TURNServer;
|
|
247
|
+
__decorate([
|
|
248
|
+
(0, di_1.Configurable)(core_1.DTO.String().optional().default('0.0.0.0')),
|
|
249
|
+
__metadata("design:type", String)
|
|
250
|
+
], TURNServer.prototype, "host", void 0);
|
|
251
|
+
__decorate([
|
|
252
|
+
(0, di_1.Configurable)(core_1.DTO.Number().port().optional().default(3478)),
|
|
253
|
+
__metadata("design:type", Number)
|
|
254
|
+
], TURNServer.prototype, "port", void 0);
|
|
255
|
+
__decorate([
|
|
256
|
+
(0, di_1.Configurable)(core_1.DTO.Boolean().optional().default(true)),
|
|
257
|
+
__metadata("design:type", Boolean)
|
|
258
|
+
], TURNServer.prototype, "udp", void 0);
|
|
259
|
+
__decorate([
|
|
260
|
+
(0, di_1.Configurable)(core_1.DTO.Boolean().optional().default(true)),
|
|
261
|
+
__metadata("design:type", Boolean)
|
|
262
|
+
], TURNServer.prototype, "tcp", void 0);
|
|
263
|
+
__decorate([
|
|
264
|
+
(0, di_1.Configurable)(core_1.DTO.Object({
|
|
265
|
+
cert: core_1.DTO.Alternatives(core_1.DTO.String(), core_1.DTO.Binary()).required(),
|
|
266
|
+
key: core_1.DTO.Alternatives(core_1.DTO.String(), core_1.DTO.Binary()).required(),
|
|
267
|
+
port: core_1.DTO.Number().port().optional()
|
|
268
|
+
}).optional()),
|
|
269
|
+
__metadata("design:type", Object)
|
|
270
|
+
], TURNServer.prototype, "tls", void 0);
|
|
271
|
+
__decorate([
|
|
272
|
+
(0, di_1.Configurable)(core_1.DTO.String().optional()),
|
|
273
|
+
__metadata("design:type", String)
|
|
274
|
+
], TURNServer.prototype, "publicAddress", void 0);
|
|
275
|
+
__decorate([
|
|
276
|
+
(0, di_1.Configurable)(core_1.DTO.Array().items(core_1.DTO.Number().port()).length(2).optional()),
|
|
277
|
+
__metadata("design:type", Array)
|
|
278
|
+
], TURNServer.prototype, "relayPortRange", void 0);
|
|
279
|
+
__decorate([
|
|
280
|
+
(0, di_1.Configurable)(core_1.DTO.String().min(1).optional()),
|
|
281
|
+
__metadata("design:type", String)
|
|
282
|
+
], TURNServer.prototype, "secret", void 0);
|
|
283
|
+
__decorate([
|
|
284
|
+
(0, di_1.Configurable)(core_1.DTO.Object().pattern(core_1.DTO.String(), core_1.DTO.String()).optional().default({})),
|
|
285
|
+
__metadata("design:type", Object)
|
|
286
|
+
], TURNServer.prototype, "users", void 0);
|
|
287
|
+
__decorate([
|
|
288
|
+
(0, di_1.Configurable)(core_1.DTO.String().optional().default('lakutata')),
|
|
289
|
+
__metadata("design:type", String)
|
|
290
|
+
], TURNServer.prototype, "realm", void 0);
|
|
291
|
+
__decorate([
|
|
292
|
+
(0, di_1.Configurable)(core_1.DTO.Number().integer().positive().optional().default(86400)),
|
|
293
|
+
__metadata("design:type", Number)
|
|
294
|
+
], TURNServer.prototype, "credentialTtl", void 0);
|
|
295
|
+
__decorate([
|
|
296
|
+
(0, di_1.Configurable)(core_1.DTO.Number().integer().positive().optional()),
|
|
297
|
+
__metadata("design:type", Number)
|
|
298
|
+
], TURNServer.prototype, "maxAllocations", void 0);
|
|
299
|
+
__decorate([
|
|
300
|
+
(0, di_1.Configurable)(core_1.DTO.Number().integer().min(0).optional().default(0)),
|
|
301
|
+
__metadata("design:type", Number)
|
|
302
|
+
], TURNServer.prototype, "workers", void 0);
|
|
303
|
+
__decorate([
|
|
304
|
+
(0, di_1.Configurable)(core_1.DTO.String().optional()),
|
|
305
|
+
__metadata("design:type", String)
|
|
306
|
+
], TURNServer.prototype, "cluster", void 0);
|
|
307
|
+
exports.TURNServer = TURNServer = __decorate([
|
|
308
|
+
(0, di_1.Singleton)()
|
|
309
|
+
], TURNServer);
|
|
310
|
+
/**
|
|
311
|
+
* Build the options of a {@link TURNServer} component, for the `components` of an application.
|
|
312
|
+
* @param options Where it listens, the address the clients reach it at, the relay ports, the credentials (all optional).
|
|
313
|
+
* @returns The component options.
|
|
314
|
+
* @example
|
|
315
|
+
* ```typescript
|
|
316
|
+
* import {Application} from 'lakutata'
|
|
317
|
+
* import {buildTURNServerOptions} from '@lakutata/webrtc'
|
|
318
|
+
*
|
|
319
|
+
* Application.run(() => ({
|
|
320
|
+
* id: 'turn.app',
|
|
321
|
+
* name: 'TURN',
|
|
322
|
+
* components: {
|
|
323
|
+
* turn: buildTURNServerOptions({publicAddress: '203.0.113.10', secret: process.env.TURN_SECRET})
|
|
324
|
+
* },
|
|
325
|
+
* bootstrap: ['turn']
|
|
326
|
+
* }))
|
|
327
|
+
* ```
|
|
328
|
+
*/
|
|
329
|
+
function buildTURNServerOptions(options = {}) {
|
|
330
|
+
return { class: TURNServer, ...options };
|
|
331
|
+
}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import { type NodeTurnServerOptions } from '../lib/turn/node/turnServer.js';
|
|
2
|
+
/**
|
|
3
|
+
* What a worker thread of the TURN server is started with
|
|
4
|
+
*/
|
|
5
|
+
export interface TURNWorkerData {
|
|
6
|
+
readonly thread: number;
|
|
7
|
+
readonly options: Omit<NodeTurnServerOptions, 'getPassword' | 'allocationGate' | 'reusePort'>;
|
|
8
|
+
readonly users: Record<string, string>;
|
|
9
|
+
readonly secret: string;
|
|
10
|
+
readonly allocations: SharedArrayBuffer;
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* The messages of the main thread to a worker thread of the TURN server
|
|
14
|
+
*/
|
|
15
|
+
export type TURNToWorker = {
|
|
16
|
+
type: 'stop';
|
|
17
|
+
} | {
|
|
18
|
+
type: 'debug';
|
|
19
|
+
enabled: boolean;
|
|
20
|
+
};
|
|
21
|
+
/**
|
|
22
|
+
* The messages of a worker thread of the TURN server to the main thread
|
|
23
|
+
*/
|
|
24
|
+
export type TURNFromWorker = {
|
|
25
|
+
type: 'ready';
|
|
26
|
+
port?: number;
|
|
27
|
+
tlsPort?: number;
|
|
28
|
+
} | {
|
|
29
|
+
type: 'failed';
|
|
30
|
+
error: string;
|
|
31
|
+
} | {
|
|
32
|
+
type: 'stopped';
|
|
33
|
+
} | {
|
|
34
|
+
type: 'log';
|
|
35
|
+
namespace: string;
|
|
36
|
+
message: string;
|
|
37
|
+
};
|
|
38
|
+
/**
|
|
39
|
+
* Serve TURN in a worker thread: a server whose listeners share their ports with the ones of the other threads (the
|
|
40
|
+
* system keeps each client on one), the allocations counted with theirs against maxAllocations
|
|
41
|
+
*/
|
|
42
|
+
export declare function runTURNWorker(): void;
|