werift 0.20.0 → 0.20.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (139) hide show
  1. package/lib/common/src/event.d.ts +45 -0
  2. package/lib/common/src/event.js +232 -0
  3. package/lib/common/src/event.js.map +1 -0
  4. package/lib/common/src/index.d.ts +1 -0
  5. package/lib/common/src/index.js +1 -0
  6. package/lib/common/src/index.js.map +1 -1
  7. package/lib/dtls/src/flight/client/flight5.js +6 -1
  8. package/lib/dtls/src/flight/client/flight5.js.map +1 -1
  9. package/lib/dtls/src/imports/common.d.ts +1 -0
  10. package/lib/dtls/src/imports/common.js +18 -0
  11. package/lib/dtls/src/imports/common.js.map +1 -0
  12. package/lib/dtls/src/socket.d.ts +1 -1
  13. package/lib/dtls/src/socket.js +5 -5
  14. package/lib/dtls/src/socket.js.map +1 -1
  15. package/lib/ice/src/candidate.d.ts +1 -1
  16. package/lib/ice/src/candidate.js +2 -1
  17. package/lib/ice/src/candidate.js.map +1 -1
  18. package/lib/ice/src/helper.js +2 -2
  19. package/lib/ice/src/helper.js.map +1 -1
  20. package/lib/ice/src/ice.d.ts +10 -5
  21. package/lib/ice/src/ice.js +46 -16
  22. package/lib/ice/src/ice.js.map +1 -1
  23. package/lib/ice/src/imports/common.d.ts +1 -0
  24. package/lib/ice/src/imports/common.js +18 -0
  25. package/lib/ice/src/imports/common.js.map +1 -0
  26. package/lib/ice/src/index.d.ts +4 -0
  27. package/lib/ice/src/index.js +4 -0
  28. package/lib/ice/src/index.js.map +1 -1
  29. package/lib/ice/src/stun/message.d.ts +1 -0
  30. package/lib/ice/src/stun/message.js +16 -6
  31. package/lib/ice/src/stun/message.js.map +1 -1
  32. package/lib/ice/src/stun/protocol.d.ts +3 -2
  33. package/lib/ice/src/stun/protocol.js +13 -7
  34. package/lib/ice/src/stun/protocol.js.map +1 -1
  35. package/lib/ice/src/stun/transaction.js +4 -3
  36. package/lib/ice/src/stun/transaction.js.map +1 -1
  37. package/lib/ice/src/transport.d.ts +21 -4
  38. package/lib/ice/src/transport.js +115 -7
  39. package/lib/ice/src/transport.js.map +1 -1
  40. package/lib/ice/src/turn/protocol.d.ts +52 -36
  41. package/lib/ice/src/turn/protocol.js +183 -76
  42. package/lib/ice/src/turn/protocol.js.map +1 -1
  43. package/lib/ice/src/types/model.d.ts +5 -5
  44. package/lib/ice/src/types/model.js.map +1 -1
  45. package/lib/ice/src/utils.d.ts +1 -0
  46. package/lib/ice/src/utils.js +15 -16
  47. package/lib/ice/src/utils.js.map +1 -1
  48. package/lib/rtp/src/extra/container/mp4/container.d.ts +1 -1
  49. package/lib/rtp/src/extra/container/mp4/container.js +2 -5
  50. package/lib/rtp/src/extra/container/mp4/container.js.map +1 -1
  51. package/lib/rtp/src/extra/processor/depacketizer.d.ts +1 -1
  52. package/lib/rtp/src/extra/processor/depacketizer.js +2 -2
  53. package/lib/rtp/src/extra/processor/depacketizer.js.map +1 -1
  54. package/lib/rtp/src/extra/processor/mp4.d.ts +1 -1
  55. package/lib/rtp/src/extra/processor/mp4.js +2 -5
  56. package/lib/rtp/src/extra/processor/mp4.js.map +1 -1
  57. package/lib/rtp/src/extra/processor/nack.d.ts +1 -1
  58. package/lib/rtp/src/extra/processor/nack.js +3 -3
  59. package/lib/rtp/src/extra/processor/nack.js.map +1 -1
  60. package/lib/rtp/src/extra/processor/rtcpCallback.d.ts +1 -1
  61. package/lib/rtp/src/extra/processor/rtcpCallback.js +2 -5
  62. package/lib/rtp/src/extra/processor/rtcpCallback.js.map +1 -1
  63. package/lib/rtp/src/extra/processor/rtpCallback.d.ts +1 -1
  64. package/lib/rtp/src/extra/processor/rtpCallback.js +2 -5
  65. package/lib/rtp/src/extra/processor/rtpCallback.js.map +1 -1
  66. package/lib/rtp/src/extra/processor/webm.d.ts +1 -1
  67. package/lib/rtp/src/extra/processor/webm.js +2 -5
  68. package/lib/rtp/src/extra/processor/webm.js.map +1 -1
  69. package/lib/rtp/src/imports/common.d.ts +1 -0
  70. package/lib/rtp/src/imports/common.js +18 -0
  71. package/lib/rtp/src/imports/common.js.map +1 -0
  72. package/lib/sctp/src/helper.js +2 -5
  73. package/lib/sctp/src/helper.js.map +1 -1
  74. package/lib/sctp/src/imports/common.d.ts +1 -0
  75. package/lib/sctp/src/imports/common.js +18 -0
  76. package/lib/sctp/src/imports/common.js.map +1 -0
  77. package/lib/sctp/src/sctp.d.ts +1 -1
  78. package/lib/sctp/src/sctp.js +3 -3
  79. package/lib/sctp/src/sctp.js.map +1 -1
  80. package/lib/webrtc/src/dataChannel.d.ts +1 -1
  81. package/lib/webrtc/src/dataChannel.js +5 -5
  82. package/lib/webrtc/src/dataChannel.js.map +1 -1
  83. package/lib/webrtc/src/imports/common.d.ts +1 -0
  84. package/lib/webrtc/src/imports/common.js +18 -0
  85. package/lib/webrtc/src/imports/common.js.map +1 -0
  86. package/lib/webrtc/src/media/receiver/nack.d.ts +1 -1
  87. package/lib/webrtc/src/media/receiver/nack.js +2 -2
  88. package/lib/webrtc/src/media/receiver/nack.js.map +1 -1
  89. package/lib/webrtc/src/media/rtpReceiver.d.ts +2 -2
  90. package/lib/webrtc/src/media/rtpReceiver.js +2 -5
  91. package/lib/webrtc/src/media/rtpReceiver.js.map +1 -1
  92. package/lib/webrtc/src/media/rtpSender.d.ts +1 -1
  93. package/lib/webrtc/src/media/rtpSender.js +5 -5
  94. package/lib/webrtc/src/media/rtpSender.js.map +1 -1
  95. package/lib/webrtc/src/media/rtpTransceiver.d.ts +1 -1
  96. package/lib/webrtc/src/media/rtpTransceiver.js +2 -5
  97. package/lib/webrtc/src/media/rtpTransceiver.js.map +1 -1
  98. package/lib/webrtc/src/media/sender/senderBWE.d.ts +1 -1
  99. package/lib/webrtc/src/media/sender/senderBWE.js +4 -7
  100. package/lib/webrtc/src/media/sender/senderBWE.js.map +1 -1
  101. package/lib/webrtc/src/media/track.d.ts +1 -1
  102. package/lib/webrtc/src/media/track.js +4 -7
  103. package/lib/webrtc/src/media/track.js.map +1 -1
  104. package/lib/webrtc/src/nonstandard/recorder/index.d.ts +2 -1
  105. package/lib/webrtc/src/nonstandard/recorder/index.js +2 -5
  106. package/lib/webrtc/src/nonstandard/recorder/index.js.map +1 -1
  107. package/lib/webrtc/src/nonstandard/recorder/writer/index.d.ts +1 -1
  108. package/lib/webrtc/src/nonstandard/recorder/writer/index.js.map +1 -1
  109. package/lib/webrtc/src/nonstandard/recorder/writer/webm.d.ts +1 -1
  110. package/lib/webrtc/src/nonstandard/recorder/writer/webm.js +2 -2
  111. package/lib/webrtc/src/nonstandard/recorder/writer/webm.js.map +1 -1
  112. package/lib/webrtc/src/peerConnection.d.ts +3 -2
  113. package/lib/webrtc/src/peerConnection.js +13 -11
  114. package/lib/webrtc/src/peerConnection.js.map +1 -1
  115. package/lib/webrtc/src/transport/dtls.d.ts +1 -1
  116. package/lib/webrtc/src/transport/dtls.js +12 -8
  117. package/lib/webrtc/src/transport/dtls.js.map +1 -1
  118. package/lib/webrtc/src/transport/ice.d.ts +2 -2
  119. package/lib/webrtc/src/transport/ice.js +10 -7
  120. package/lib/webrtc/src/transport/ice.js.map +1 -1
  121. package/lib/webrtc/src/transport/sctp.d.ts +1 -1
  122. package/lib/webrtc/src/transport/sctp.js +2 -2
  123. package/lib/webrtc/src/transport/sctp.js.map +1 -1
  124. package/package.json +1 -1
  125. package/src/dataChannel.ts +1 -1
  126. package/src/imports/common.ts +1 -0
  127. package/src/media/receiver/nack.ts +1 -1
  128. package/src/media/rtpReceiver.ts +1 -1
  129. package/src/media/rtpSender.ts +1 -1
  130. package/src/media/rtpTransceiver.ts +1 -1
  131. package/src/media/sender/senderBWE.ts +1 -1
  132. package/src/media/track.ts +1 -1
  133. package/src/nonstandard/recorder/index.ts +3 -1
  134. package/src/nonstandard/recorder/writer/index.ts +1 -1
  135. package/src/nonstandard/recorder/writer/webm.ts +1 -1
  136. package/src/peerConnection.ts +4 -1
  137. package/src/transport/dtls.ts +11 -5
  138. package/src/transport/ice.ts +9 -4
  139. package/src/transport/sctp.ts +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"webm.js","sourceRoot":"","sources":["../../../../../../src/nonstandard/recorder/writer/webm.ts"],"names":[],"mappings":"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","sourcesContent":["import { unlink } from \"fs/promises\";\nimport { EventDisposer } from \"rx.mini\";\n\nimport { MediaWriter } from \".\";\nimport { type MediaStreamTrack, WeriftError } from \"../../..\";\nimport {\n DepacketizeCallback,\n JitterBufferCallback,\n LipsyncCallback,\n NtpTimeCallback,\n RtcpSourceCallback,\n RtpSourceCallback,\n RtpTimeCallback,\n type SupportedCodec,\n WebmCallback,\n saveToFileSystem,\n} from \"../../../../../rtp/src/extra\";\n\nconst sourcePath = \"packages/webrtc/src/nonstandard/recorder/writer/webm.ts\";\n\nexport class WebmFactory extends MediaWriter {\n rtpSources: RtpSourceCallback[] = [];\n\n unSubscribers = new EventDisposer();\n\n async start(tracks: MediaStreamTrack[]) {\n if (this.props.path) {\n await unlink(this.props.path).catch((e) => e);\n }\n\n const inputTracks = tracks.map((track, i) => {\n const trackNumber = i + 1;\n const payloadType = track.codec!.payloadType;\n\n if (track.kind === \"video\") {\n const codec = ((): SupportedCodec => {\n switch (track.codec?.name.toLowerCase() as SupportedVideoCodec) {\n case \"vp8\":\n return \"VP8\";\n case \"vp9\":\n return \"VP9\";\n case \"h264\":\n return \"MPEG4/ISO/AVC\";\n case \"av1x\":\n return \"AV1\";\n default:\n throw new WeriftError({\n message: \"unsupported codec\",\n payload: { track, path: sourcePath },\n });\n }\n })();\n return {\n kind: \"video\" as const,\n codec,\n clockRate: 90000,\n trackNumber,\n width: this.props.width ?? 640,\n height: this.props.height ?? 360,\n payloadType,\n track,\n };\n } else {\n return {\n kind: \"audio\" as const,\n codec: \"OPUS\" as const,\n clockRate: 48000,\n trackNumber,\n payloadType,\n track,\n };\n }\n });\n\n const webm = new WebmCallback(inputTracks, {\n duration: this.props.defaultDuration ?? 1000 * 60 * 60 * 24,\n });\n const lipsync = new LipsyncCallback();\n\n if (inputTracks.length === 1 || this.props.disableNtp) {\n this.props.disableLipSync = true;\n }\n\n this.rtpSources = inputTracks.map(({ track, clockRate, codec }) => {\n const rtpSource = new RtpSourceCallback();\n const rtcpSource = new RtcpSourceCallback();\n track.onReceiveRtp\n .subscribe((rtp) => {\n rtpSource.input(rtp.clone());\n })\n .disposer(this.unSubscribers);\n track.onReceiveRtcp\n .subscribe((rtcp) => {\n rtcpSource.input(rtcp);\n })\n .disposer(this.unSubscribers);\n const time = this.props.disableNtp\n ? new RtpTimeCallback(clockRate)\n : new NtpTimeCallback(clockRate);\n\n if (track.kind === \"video\") {\n const depacketizer = new DepacketizeCallback(codec, {\n isFinalPacketInSequence: (h) => h.marker,\n });\n const jitterBuffer = new JitterBufferCallback(clockRate, {\n bufferSize: this.props.jitterBufferSize,\n latency: this.props.jitterBufferLatency,\n });\n\n rtpSource.pipe(jitterBuffer.input);\n rtcpSource.pipe(time.input);\n\n jitterBuffer.pipe(time.input);\n time.pipe(depacketizer.input);\n if (this.props.disableLipSync) {\n depacketizer.pipe(webm.inputVideo);\n } else {\n depacketizer.pipe(lipsync.inputVideo);\n lipsync.pipeVideo(webm.inputVideo);\n }\n } else {\n const depacketizer = new DepacketizeCallback(codec);\n\n rtpSource.pipe(time.input);\n rtcpSource.pipe(time.input);\n\n time.pipe(depacketizer.input);\n if (this.props.disableLipSync) {\n depacketizer.pipe(webm.inputAudio);\n } else {\n depacketizer.pipe(lipsync.inputAudio);\n lipsync.pipeAudio(webm.inputAudio);\n }\n }\n\n return rtpSource;\n });\n if (this.props.path) {\n webm.pipe(saveToFileSystem(this.props.path));\n } else if (this.props.stream) {\n webm.pipe(async (o) => {\n this.props.stream.execute(o);\n });\n }\n }\n\n async stop() {\n await Promise.all(this.rtpSources.map((r) => r.stop()));\n this.unSubscribers.dispose();\n }\n}\n\nconst supportedVideoCodecs = [\"h264\", \"vp8\", \"vp9\", \"av1x\"] as const;\ntype SupportedVideoCodec = (typeof supportedVideoCodecs)[number];\n"]}
1
+ {"version":3,"file":"webm.js","sourceRoot":"","sources":["../../../../../../src/nonstandard/recorder/writer/webm.ts"],"names":[],"mappings":"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","sourcesContent":["import { unlink } from \"fs/promises\";\nimport { EventDisposer } from \"../../../imports/common\";\n\nimport { MediaWriter } from \".\";\nimport { type MediaStreamTrack, WeriftError } from \"../../..\";\nimport {\n DepacketizeCallback,\n JitterBufferCallback,\n LipsyncCallback,\n NtpTimeCallback,\n RtcpSourceCallback,\n RtpSourceCallback,\n RtpTimeCallback,\n type SupportedCodec,\n WebmCallback,\n saveToFileSystem,\n} from \"../../../../../rtp/src/extra\";\n\nconst sourcePath = \"packages/webrtc/src/nonstandard/recorder/writer/webm.ts\";\n\nexport class WebmFactory extends MediaWriter {\n rtpSources: RtpSourceCallback[] = [];\n\n unSubscribers = new EventDisposer();\n\n async start(tracks: MediaStreamTrack[]) {\n if (this.props.path) {\n await unlink(this.props.path).catch((e) => e);\n }\n\n const inputTracks = tracks.map((track, i) => {\n const trackNumber = i + 1;\n const payloadType = track.codec!.payloadType;\n\n if (track.kind === \"video\") {\n const codec = ((): SupportedCodec => {\n switch (track.codec?.name.toLowerCase() as SupportedVideoCodec) {\n case \"vp8\":\n return \"VP8\";\n case \"vp9\":\n return \"VP9\";\n case \"h264\":\n return \"MPEG4/ISO/AVC\";\n case \"av1x\":\n return \"AV1\";\n default:\n throw new WeriftError({\n message: \"unsupported codec\",\n payload: { track, path: sourcePath },\n });\n }\n })();\n return {\n kind: \"video\" as const,\n codec,\n clockRate: 90000,\n trackNumber,\n width: this.props.width ?? 640,\n height: this.props.height ?? 360,\n payloadType,\n track,\n };\n } else {\n return {\n kind: \"audio\" as const,\n codec: \"OPUS\" as const,\n clockRate: 48000,\n trackNumber,\n payloadType,\n track,\n };\n }\n });\n\n const webm = new WebmCallback(inputTracks, {\n duration: this.props.defaultDuration ?? 1000 * 60 * 60 * 24,\n });\n const lipsync = new LipsyncCallback();\n\n if (inputTracks.length === 1 || this.props.disableNtp) {\n this.props.disableLipSync = true;\n }\n\n this.rtpSources = inputTracks.map(({ track, clockRate, codec }) => {\n const rtpSource = new RtpSourceCallback();\n const rtcpSource = new RtcpSourceCallback();\n track.onReceiveRtp\n .subscribe((rtp) => {\n rtpSource.input(rtp.clone());\n })\n .disposer(this.unSubscribers);\n track.onReceiveRtcp\n .subscribe((rtcp) => {\n rtcpSource.input(rtcp);\n })\n .disposer(this.unSubscribers);\n const time = this.props.disableNtp\n ? new RtpTimeCallback(clockRate)\n : new NtpTimeCallback(clockRate);\n\n if (track.kind === \"video\") {\n const depacketizer = new DepacketizeCallback(codec, {\n isFinalPacketInSequence: (h) => h.marker,\n });\n const jitterBuffer = new JitterBufferCallback(clockRate, {\n bufferSize: this.props.jitterBufferSize,\n latency: this.props.jitterBufferLatency,\n });\n\n rtpSource.pipe(jitterBuffer.input);\n rtcpSource.pipe(time.input);\n\n jitterBuffer.pipe(time.input);\n time.pipe(depacketizer.input);\n if (this.props.disableLipSync) {\n depacketizer.pipe(webm.inputVideo);\n } else {\n depacketizer.pipe(lipsync.inputVideo);\n lipsync.pipeVideo(webm.inputVideo);\n }\n } else {\n const depacketizer = new DepacketizeCallback(codec);\n\n rtpSource.pipe(time.input);\n rtcpSource.pipe(time.input);\n\n time.pipe(depacketizer.input);\n if (this.props.disableLipSync) {\n depacketizer.pipe(webm.inputAudio);\n } else {\n depacketizer.pipe(lipsync.inputAudio);\n lipsync.pipeAudio(webm.inputAudio);\n }\n }\n\n return rtpSource;\n });\n if (this.props.path) {\n webm.pipe(saveToFileSystem(this.props.path));\n } else if (this.props.stream) {\n webm.pipe(async (o) => {\n this.props.stream.execute(o);\n });\n }\n }\n\n async stop() {\n await Promise.all(this.rtpSources.map((r) => r.stop()));\n this.unSubscribers.dispose();\n }\n}\n\nconst supportedVideoCodecs = [\"h264\", \"vp8\", \"vp9\", \"av1x\"] as const;\ntype SupportedVideoCodec = (typeof supportedVideoCodecs)[number];\n"]}
@@ -1,4 +1,4 @@
1
- import Event from "rx.mini";
1
+ import { Event } from "./imports/common";
2
2
  import { type Address, type CandidatePair, type InterfaceAddresses } from ".";
3
3
  import { type DtlsKeys } from ".";
4
4
  import type { Message } from "../../ice/src/stun/message";
@@ -30,7 +30,7 @@ export declare class RTCPeerConnection extends EventTarget {
30
30
  private pushTransceiver;
31
31
  private replaceTransceiver;
32
32
  candidatesSent: Set<string>;
33
- readonly iceGatheringStateChange: Event<["new" | "complete" | "gathering"]>;
33
+ readonly iceGatheringStateChange: Event<["complete" | "new" | "gathering"]>;
34
34
  readonly iceConnectionStateChange: Event<["disconnected" | "closed" | "completed" | "new" | "connected" | "failed" | "checking"]>;
35
35
  readonly signalingStateChange: Event<["closed" | "stable" | "have-local-offer" | "have-remote-offer" | "have-local-pranswer" | "have-remote-pranswer"]>;
36
36
  readonly connectionStateChange: Event<["disconnected" | "closed" | "new" | "connected" | "connecting" | "failed"]>;
@@ -151,6 +151,7 @@ export interface PeerConfig {
151
151
  iceAdditionalHostAddresses: string[] | undefined;
152
152
  iceUseIpv4: boolean;
153
153
  iceUseIpv6: boolean;
154
+ forceTurnTCP: boolean;
154
155
  /** If provided, is called on each STUN request.
155
156
  * Return `true` if a STUN response should be sent, false if it should be skipped. */
156
157
  iceFilterStunResponse: ((message: Message, addr: Address, protocol: Protocol) => boolean) | undefined;
@@ -34,8 +34,8 @@ exports.allocateMid = allocateMid;
34
34
  const debug_1 = __importDefault(require("debug"));
35
35
  const cloneDeep_1 = __importDefault(require("lodash/cloneDeep"));
36
36
  const isEqual_1 = __importDefault(require("lodash/isEqual"));
37
- const rx_mini_1 = __importDefault(require("rx.mini"));
38
37
  const uuid = __importStar(require("uuid"));
38
+ const common_1 = require("./imports/common");
39
39
  const _1 = require(".");
40
40
  const _2 = require(".");
41
41
  const const_1 = require("./const");
@@ -150,61 +150,61 @@ class RTCPeerConnection extends helper_1.EventTarget {
150
150
  enumerable: true,
151
151
  configurable: true,
152
152
  writable: true,
153
- value: new rx_mini_1.default()
153
+ value: new common_1.Event()
154
154
  });
155
155
  Object.defineProperty(this, "iceConnectionStateChange", {
156
156
  enumerable: true,
157
157
  configurable: true,
158
158
  writable: true,
159
- value: new rx_mini_1.default()
159
+ value: new common_1.Event()
160
160
  });
161
161
  Object.defineProperty(this, "signalingStateChange", {
162
162
  enumerable: true,
163
163
  configurable: true,
164
164
  writable: true,
165
- value: new rx_mini_1.default()
165
+ value: new common_1.Event()
166
166
  });
167
167
  Object.defineProperty(this, "connectionStateChange", {
168
168
  enumerable: true,
169
169
  configurable: true,
170
170
  writable: true,
171
- value: new rx_mini_1.default()
171
+ value: new common_1.Event()
172
172
  });
173
173
  Object.defineProperty(this, "onDataChannel", {
174
174
  enumerable: true,
175
175
  configurable: true,
176
176
  writable: true,
177
- value: new rx_mini_1.default()
177
+ value: new common_1.Event()
178
178
  });
179
179
  Object.defineProperty(this, "onRemoteTransceiverAdded", {
180
180
  enumerable: true,
181
181
  configurable: true,
182
182
  writable: true,
183
- value: new rx_mini_1.default()
183
+ value: new common_1.Event()
184
184
  });
185
185
  Object.defineProperty(this, "onTransceiverAdded", {
186
186
  enumerable: true,
187
187
  configurable: true,
188
188
  writable: true,
189
- value: new rx_mini_1.default()
189
+ value: new common_1.Event()
190
190
  });
191
191
  Object.defineProperty(this, "onIceCandidate", {
192
192
  enumerable: true,
193
193
  configurable: true,
194
194
  writable: true,
195
- value: new rx_mini_1.default()
195
+ value: new common_1.Event()
196
196
  });
197
197
  Object.defineProperty(this, "onNegotiationneeded", {
198
198
  enumerable: true,
199
199
  configurable: true,
200
200
  writable: true,
201
- value: new rx_mini_1.default()
201
+ value: new common_1.Event()
202
202
  });
203
203
  Object.defineProperty(this, "onTrack", {
204
204
  enumerable: true,
205
205
  configurable: true,
206
206
  writable: true,
207
- value: new rx_mini_1.default()
207
+ value: new common_1.Event()
208
208
  });
209
209
  Object.defineProperty(this, "ondatachannel", {
210
210
  enumerable: true,
@@ -586,6 +586,7 @@ class RTCPeerConnection extends helper_1.EventTarget {
586
586
  filterCandidatePair: this.config.iceFilterCandidatePair,
587
587
  useIpv4: this.config.iceUseIpv4,
588
588
  useIpv6: this.config.iceUseIpv6,
589
+ turnTransport: this.config.forceTurnTCP === true ? "tcp" : "udp",
589
590
  });
590
591
  if (existing) {
591
592
  iceGatherer.connection.localUserName = existing.connection.localUserName;
@@ -1525,5 +1526,6 @@ exports.defaultPeerConfig = {
1525
1526
  bundlePolicy: "max-compat",
1526
1527
  debug: {},
1527
1528
  midSuffix: false,
1529
+ forceTurnTCP: false,
1528
1530
  };
1529
1531
  //# sourceMappingURL=peerConnection.js.map