@lukks/wrtc 0.0.0-stage → 0.7.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.
Files changed (51) hide show
  1. package/LICENSE.md +30 -0
  2. package/README.md +2 -2
  3. package/THIRD_PARTY_LICENSES.md +1314 -0
  4. package/lib/binding.d.ts +2 -0
  5. package/lib/binding.js +37 -0
  6. package/lib/binding.js.map +1 -0
  7. package/lib/browser.d.ts +71 -0
  8. package/lib/browser.js +22 -0
  9. package/lib/browser.js.map +1 -0
  10. package/lib/datachannelevent.d.ts +1 -0
  11. package/lib/datachannelevent.js +26 -0
  12. package/lib/datachannelevent.js.map +1 -0
  13. package/lib/datachannelmessageevent.d.ts +1 -0
  14. package/lib/error.d.ts +1 -0
  15. package/lib/eventtarget.d.ts +5 -0
  16. package/lib/eventtarget.js +60 -0
  17. package/lib/eventtarget.js.map +1 -0
  18. package/lib/icecandidate.d.ts +1 -0
  19. package/lib/icecandidate.js +29 -0
  20. package/lib/icecandidate.js.map +1 -0
  21. package/lib/index.d.ts +18 -0
  22. package/lib/index.js +124 -0
  23. package/lib/index.js.map +1 -0
  24. package/lib/mediadevices.d.ts +1 -0
  25. package/lib/mediadevices.js +20 -0
  26. package/lib/mediadevices.js.map +1 -0
  27. package/lib/mediastreamtrackevent.d.ts +3 -0
  28. package/lib/mediastreamtrackevent.js +17 -0
  29. package/lib/mediastreamtrackevent.js.map +1 -0
  30. package/lib/peerconnection.d.ts +2 -0
  31. package/lib/peerconnection.js +305 -0
  32. package/lib/peerconnection.js.map +1 -0
  33. package/lib/rtcpeerconnectioniceerrorevent.d.ts +1 -0
  34. package/lib/rtcpeerconnectioniceerrorevent.js +13 -0
  35. package/lib/rtcpeerconnectioniceerrorevent.js.map +1 -0
  36. package/lib/rtcpeerconnectioniceevent.d.ts +3 -0
  37. package/lib/rtcpeerconnectioniceevent.js +22 -0
  38. package/lib/rtcpeerconnectioniceevent.js.map +1 -0
  39. package/lib/rtctrackevent.d.ts +3 -0
  40. package/lib/rtctrackevent.js +33 -0
  41. package/lib/rtctrackevent.js.map +1 -0
  42. package/lib/rtpstats.d.ts +2 -0
  43. package/lib/rtpstats.js +37 -0
  44. package/lib/rtpstats.js.map +1 -0
  45. package/lib/sessiondescription.d.ts +1 -0
  46. package/lib/sessiondescription.js +16 -0
  47. package/lib/sessiondescription.js.map +1 -0
  48. package/lib/trackconstraints.d.ts +1 -0
  49. package/lib/trackconstraints.js +146 -0
  50. package/lib/trackconstraints.js.map +1 -0
  51. package/package.json +36 -3
@@ -0,0 +1,305 @@
1
+ import { inherits } from 'node:util';
2
+ import binding from './binding.js';
3
+ import EventTarget from './eventtarget.js';
4
+ import RTCDataChannelEvent from './datachannelevent.js';
5
+ import RTCIceCandidate from './icecandidate.js';
6
+ import RTCPeerConnectionIceEvent from './rtcpeerconnectioniceevent.js';
7
+ import RTCPeerConnectionIceErrorEvent from './rtcpeerconnectioniceerrorevent.js';
8
+ import RTCSessionDescription from './sessiondescription.js';
9
+ import { associateTransceiver, associateEndpoint } from './rtpstats.js';
10
+ import RTCTrackEvent from './rtctrackevent.js';
11
+
12
+ // @ts-nocheck
13
+ function getCachedSessionDescription(self, key, description) {
14
+ const cache = self._sessionDescriptionCache ||
15
+ (self._sessionDescriptionCache = Object.create(null));
16
+ if (!description) {
17
+ cache[key] = null;
18
+ return null;
19
+ }
20
+ const cached = cache[key];
21
+ if (cached &&
22
+ (cached.source === description ||
23
+ (cached.source &&
24
+ cached.source.type === description.type &&
25
+ cached.source.sdp === description.sdp))) {
26
+ return cached.value;
27
+ }
28
+ const value = new RTCSessionDescription(description);
29
+ cache[key] = {
30
+ source: description,
31
+ value: value,
32
+ };
33
+ return value;
34
+ }
35
+ var PEER_CONNECTION_DESCRIPTORS = {
36
+ canTrickleIceCandidates: {
37
+ get: function getCanTrickleIceCandidates() {
38
+ return this._pc.canTrickleIceCandidates;
39
+ },
40
+ enumerable: true,
41
+ },
42
+ connectionState: {
43
+ get: function getConnectionState() {
44
+ return this._pc.connectionState;
45
+ },
46
+ enumerable: true,
47
+ },
48
+ currentLocalDescription: {
49
+ get: function getCurrentLocalDescription() {
50
+ return getCachedSessionDescription(this, "currentLocalDescription", this._pc.currentLocalDescription);
51
+ },
52
+ enumerable: true,
53
+ },
54
+ localDescription: {
55
+ get: function getLocalDescription() {
56
+ return getCachedSessionDescription(this, "localDescription", this._pc.localDescription);
57
+ },
58
+ enumerable: true,
59
+ },
60
+ pendingLocalDescription: {
61
+ get: function getPendingLocalDescription() {
62
+ return getCachedSessionDescription(this, "pendingLocalDescription", this._pc.pendingLocalDescription);
63
+ },
64
+ enumerable: true,
65
+ },
66
+ currentRemoteDescription: {
67
+ get: function getCurrentRemoteDescription() {
68
+ return getCachedSessionDescription(this, "currentRemoteDescription", this._pc.currentRemoteDescription);
69
+ },
70
+ enumerable: true,
71
+ },
72
+ remoteDescription: {
73
+ get: function getRemoteDescription() {
74
+ return getCachedSessionDescription(this, "remoteDescription", this._pc.remoteDescription);
75
+ },
76
+ enumerable: true,
77
+ },
78
+ pendingRemoteDescription: {
79
+ get: function getPendingRemoteDescription() {
80
+ return getCachedSessionDescription(this, "pendingRemoteDescription", this._pc.pendingRemoteDescription);
81
+ },
82
+ enumerable: true,
83
+ },
84
+ signalingState: {
85
+ get: function getSignalingState() {
86
+ return this._pc.signalingState;
87
+ },
88
+ enumerable: true,
89
+ },
90
+ readyState: {
91
+ get: function getReadyState() {
92
+ return this._pc.getReadyState();
93
+ },
94
+ },
95
+ sctp: {
96
+ get: function getSctp() {
97
+ return this._pc.sctp;
98
+ },
99
+ enumerable: true,
100
+ },
101
+ iceGatheringState: {
102
+ get: function getIceGatheringState() {
103
+ return this._pc.iceGatheringState;
104
+ },
105
+ enumerable: true,
106
+ },
107
+ iceConnectionState: {
108
+ get: function getIceConnectionState() {
109
+ return this._pc.iceConnectionState;
110
+ },
111
+ enumerable: true,
112
+ },
113
+ onconnectionstatechange: {
114
+ value: null,
115
+ writable: true,
116
+ enumerable: true,
117
+ },
118
+ ondatachannel: {
119
+ value: null,
120
+ writable: true,
121
+ enumerable: true,
122
+ },
123
+ oniceconnectionstatechange: {
124
+ value: null,
125
+ writable: true,
126
+ enumerable: true,
127
+ },
128
+ onicegatheringstatechange: {
129
+ value: null,
130
+ writable: true,
131
+ enumerable: true,
132
+ },
133
+ onnegotiationneeded: {
134
+ value: null,
135
+ writable: true,
136
+ enumerable: true,
137
+ },
138
+ onsignalingstatechange: {
139
+ value: null,
140
+ writable: true,
141
+ enumerable: true,
142
+ },
143
+ };
144
+ function RTCPeerConnection() {
145
+ var self = this;
146
+ var pc = new binding.RTCPeerConnection(arguments[0] || {});
147
+ EventTarget.call(this);
148
+ //
149
+ // Attach events to the native PeerConnection object
150
+ //
151
+ pc.ontrack = function ontrack(receiver, streams, transceiver) {
152
+ associateEndpoint(receiver, pc);
153
+ associateTransceiver(transceiver, pc);
154
+ const event = new RTCTrackEvent("track", {
155
+ track: receiver.track,
156
+ receiver: receiver,
157
+ streams: streams,
158
+ transceiver: transceiver,
159
+ });
160
+ Object.defineProperty(event, "target", { value: self, enumerable: true });
161
+ self.dispatchEvent(event);
162
+ };
163
+ pc.onconnectionstatechange = function onconnectionstatechange() {
164
+ self.dispatchEvent({ type: "connectionstatechange", target: self });
165
+ };
166
+ pc.onicecandidate = function onicecandidate(candidate) {
167
+ var icecandidate = new RTCIceCandidate(candidate);
168
+ const event = new RTCPeerConnectionIceEvent("icecandidate", {
169
+ candidate: icecandidate,
170
+ });
171
+ Object.defineProperty(event, "target", { value: self, enumerable: true });
172
+ self.dispatchEvent(event);
173
+ };
174
+ pc.onicecandidateerror = function onicecandidateerror(eventInitDict) {
175
+ var pair = eventInitDict.hostCandidate.split(":");
176
+ eventInitDict.address = pair[0];
177
+ eventInitDict.port = pair[1];
178
+ eventInitDict.target = self;
179
+ var icecandidateerror = new RTCPeerConnectionIceErrorEvent("icecandidateerror", eventInitDict);
180
+ self.dispatchEvent(icecandidateerror);
181
+ };
182
+ pc.onsignalingstatechange = function onsignalingstatechange() {
183
+ self.dispatchEvent({ type: "signalingstatechange", target: self });
184
+ };
185
+ pc.oniceconnectionstatechange = function oniceconnectionstatechange() {
186
+ self.dispatchEvent({ type: "iceconnectionstatechange", target: self });
187
+ };
188
+ pc.onicegatheringstatechange = function onicegatheringstatechange() {
189
+ self.dispatchEvent({ type: "icegatheringstatechange", target: self });
190
+ // if we have completed gathering candidates, trigger a null candidate event
191
+ if (self.iceGatheringState === "complete" &&
192
+ self.connectionState !== "closed") {
193
+ const event = new RTCPeerConnectionIceEvent("icecandidate", {
194
+ candidate: null,
195
+ });
196
+ Object.defineProperty(event, "target", { value: self, enumerable: true });
197
+ self.dispatchEvent(event);
198
+ }
199
+ };
200
+ pc.onnegotiationneeded = function onnegotiationneeded() {
201
+ self.dispatchEvent({ type: "negotiationneeded", target: self });
202
+ };
203
+ // [ToDo] onnegotiationneeded
204
+ pc.ondatachannel = function ondatachannel(channel) {
205
+ self.dispatchEvent(new RTCDataChannelEvent("datachannel", { channel, target: self }));
206
+ };
207
+ //
208
+ // PeerConnection properties & attributes
209
+ //
210
+ Object.defineProperty(this, "_pc", {
211
+ value: pc,
212
+ });
213
+ Object.defineProperties(this, PEER_CONNECTION_DESCRIPTORS);
214
+ }
215
+ inherits(RTCPeerConnection, EventTarget);
216
+ // NOTE(mroberts): This is a bit of a hack.
217
+ RTCPeerConnection.prototype.ontrack = null;
218
+ RTCPeerConnection.prototype.addIceCandidate = function addIceCandidate(candidate) {
219
+ var promise = this._pc.addIceCandidate(candidate);
220
+ if (arguments.length === 3) {
221
+ promise.then(arguments[1], arguments[2]);
222
+ }
223
+ return promise;
224
+ };
225
+ RTCPeerConnection.prototype.addTransceiver = function addTransceiver() {
226
+ return associateTransceiver(this._pc.addTransceiver.apply(this._pc, arguments), this._pc);
227
+ };
228
+ RTCPeerConnection.prototype.addTrack = function addTrack(track, ...streams) {
229
+ return associateEndpoint(this._pc.addTrack(track, streams), this._pc);
230
+ };
231
+ RTCPeerConnection.prototype.close = function close() {
232
+ this._pc.close();
233
+ };
234
+ RTCPeerConnection.prototype.createDataChannel = function createDataChannel() {
235
+ return this._pc.createDataChannel.apply(this._pc, arguments);
236
+ };
237
+ RTCPeerConnection.prototype.createOffer = function createOffer() {
238
+ var options = arguments.length === 3 ? arguments[2] : arguments[0];
239
+ var promise = this._pc.createOffer(options || {});
240
+ if (arguments.length >= 2) {
241
+ promise.then(arguments[0], arguments[1]);
242
+ }
243
+ return promise;
244
+ };
245
+ RTCPeerConnection.prototype.createAnswer = function createAnswer() {
246
+ var options = arguments.length === 3 ? arguments[2] : arguments[0];
247
+ var promise = this._pc.createAnswer(options || {});
248
+ if (arguments.length >= 2) {
249
+ promise.then(arguments[0], arguments[1]);
250
+ }
251
+ return promise;
252
+ };
253
+ RTCPeerConnection.prototype.getConfiguration = function getConfiguration() {
254
+ return this._pc.getConfiguration();
255
+ };
256
+ RTCPeerConnection.prototype.getReceivers = function getReceivers() {
257
+ return this._pc.getReceivers().map(receiver => associateEndpoint(receiver, this._pc));
258
+ };
259
+ RTCPeerConnection.prototype.getSenders = function getSenders() {
260
+ return this._pc.getSenders().map(sender => associateEndpoint(sender, this._pc));
261
+ };
262
+ RTCPeerConnection.prototype.getTransceivers = function getTransceivers() {
263
+ return this._pc.getTransceivers().map(transceiver => associateTransceiver(transceiver, this._pc));
264
+ };
265
+ RTCPeerConnection.prototype.getStats = function getStats(selector) {
266
+ if (selector == null) {
267
+ return this._pc.getStats();
268
+ }
269
+ if (!(selector instanceof binding.MediaStreamTrack)) {
270
+ return Promise.reject(new TypeError("selector must be a MediaStreamTrack"));
271
+ }
272
+ const endpoints = [...this.getSenders(), ...this.getReceivers()]
273
+ .filter(endpoint => endpoint.track === selector);
274
+ if (endpoints.length !== 1) {
275
+ return Promise.reject(new DOMException("selector must match exactly one sender or receiver", "InvalidAccessError"));
276
+ }
277
+ return this._pc.getStats(endpoints[0]);
278
+ };
279
+ RTCPeerConnection.prototype.removeTrack = function removeTrack(sender) {
280
+ this._pc.removeTrack(sender);
281
+ };
282
+ RTCPeerConnection.prototype.setConfiguration = function setConfiguration(configuration) {
283
+ return this._pc.setConfiguration(configuration);
284
+ };
285
+ RTCPeerConnection.prototype.setLocalDescription = function setLocalDescription(description) {
286
+ var promise = this._pc.setLocalDescription(description);
287
+ if (arguments.length === 3) {
288
+ promise.then(arguments[1], arguments[2]);
289
+ }
290
+ return promise;
291
+ };
292
+ RTCPeerConnection.prototype.setRemoteDescription =
293
+ function setRemoteDescription(description) {
294
+ var promise = this._pc.setRemoteDescription(description);
295
+ if (arguments.length === 3) {
296
+ promise.then(arguments[1], arguments[2]);
297
+ }
298
+ return promise;
299
+ };
300
+ RTCPeerConnection.prototype.restartIce = function restartIce() {
301
+ return this._pc.restartIce();
302
+ };
303
+
304
+ export { RTCPeerConnection as default };
305
+ //# sourceMappingURL=peerconnection.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"peerconnection.js","sources":["../src/src/lib/peerconnection.ts"],"sourcesContent":[null],"names":["_webrtc"],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export default function RTCPeerConnectionIceErrorEvent(type: any, eventInitDict: any): void;
@@ -0,0 +1,13 @@
1
+ // @ts-nocheck
2
+ function RTCPeerConnectionIceErrorEvent(type, eventInitDict) {
3
+ this.type = type;
4
+ this.address = eventInitDict.address;
5
+ this.port = eventInitDict.port;
6
+ this.url = eventInitDict.url;
7
+ this.errorCode = eventInitDict.errorCode;
8
+ this.errorText = eventInitDict.errorText;
9
+ this.target = eventInitDict.target;
10
+ }
11
+
12
+ export { RTCPeerConnectionIceErrorEvent as default };
13
+ //# sourceMappingURL=rtcpeerconnectioniceerrorevent.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rtcpeerconnectioniceerrorevent.js","sources":["../src/src/lib/rtcpeerconnectioniceerrorevent.ts"],"sourcesContent":[null],"names":[],"mappings":"AAAA;AAGc,SAAU,8BAA8B,CAAC,IAAI,EAAE,aAAa,EAAA;AACxE,IAAA,IAAI,CAAC,IAAI,GAAG,IAAI;AAChB,IAAA,IAAI,CAAC,OAAO,GAAG,aAAa,CAAC,OAAO;AACpC,IAAA,IAAI,CAAC,IAAI,GAAG,aAAa,CAAC,IAAI;AAC9B,IAAA,IAAI,CAAC,GAAG,GAAG,aAAa,CAAC,GAAG;AAC5B,IAAA,IAAI,CAAC,SAAS,GAAG,aAAa,CAAC,SAAS;AACxC,IAAA,IAAI,CAAC,SAAS,GAAG,aAAa,CAAC,SAAS;AACxC,IAAA,IAAI,CAAC,MAAM,GAAG,aAAa,CAAC,MAAM;AACpC;;"}
@@ -0,0 +1,3 @@
1
+ export default class RTCPeerConnectionIceEvent extends Event {
2
+ constructor(type: any, eventInitDict?: {});
3
+ }
@@ -0,0 +1,22 @@
1
+ import RTCIceCandidate from './icecandidate.js';
2
+
3
+ // @ts-nocheck
4
+ class RTCPeerConnectionIceEvent extends Event {
5
+ constructor(type, eventInitDict = {}) {
6
+ if (arguments.length < 1)
7
+ throw new TypeError("An event type is required");
8
+ eventInitDict = eventInitDict ?? {};
9
+ super(type, eventInitDict);
10
+ const candidate = eventInitDict.candidate ?? null;
11
+ if (candidate !== null && !(candidate instanceof RTCIceCandidate)) {
12
+ throw new TypeError("candidate must be an RTCIceCandidate or null");
13
+ }
14
+ Object.defineProperties(this, {
15
+ candidate: { value: candidate, enumerable: true },
16
+ url: { value: eventInitDict.url == null ? null : String(eventInitDict.url).toWellFormed(), enumerable: true },
17
+ });
18
+ }
19
+ }
20
+
21
+ export { RTCPeerConnectionIceEvent as default };
22
+ //# sourceMappingURL=rtcpeerconnectioniceevent.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rtcpeerconnectioniceevent.js","sources":["../src/src/lib/rtcpeerconnectioniceevent.ts"],"sourcesContent":[null],"names":[],"mappings":";;AAAA;AAKc,MAAO,yBAA0B,SAAQ,KAAK,CAAA;AAC1D,IAAA,WAAA,CAAY,IAAI,EAAE,aAAa,GAAG,EAAE,EAAA;AAClC,QAAA,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC;AAAE,YAAA,MAAM,IAAI,SAAS,CAAC,2BAA2B,CAAC;AAC1E,QAAA,aAAa,GAAG,aAAa,IAAI,EAAE;AACnC,QAAA,KAAK,CAAC,IAAI,EAAE,aAAa,CAAC;AAC1B,QAAA,MAAM,SAAS,GAAG,aAAa,CAAC,SAAS,IAAI,IAAI;QACjD,IAAI,SAAS,KAAK,IAAI,IAAI,EAAE,SAAS,YAAY,eAAe,CAAC,EAAE;AACjE,YAAA,MAAM,IAAI,SAAS,CAAC,8CAA8C,CAAC;QACrE;AACA,QAAA,MAAM,CAAC,gBAAgB,CAAC,IAAI,EAAE;YAC5B,SAAS,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,IAAI,EAAE;AACjD,YAAA,GAAG,EAAE,EAAE,KAAK,EAAE,aAAa,CAAC,GAAG,IAAI,IAAI,GAAG,IAAI,GAAG,MAAM,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,YAAY,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE;AAC9G,SAAA,CAAC;IACJ;AACD;;"}
@@ -0,0 +1,3 @@
1
+ export default class RTCTrackEvent extends Event {
2
+ constructor(type: any, eventInitDict: any);
3
+ }
@@ -0,0 +1,33 @@
1
+ import binding from './binding.js';
2
+
3
+ // @ts-nocheck
4
+ class RTCTrackEvent extends Event {
5
+ constructor(type, eventInitDict) {
6
+ if (arguments.length < 2)
7
+ throw new TypeError("RTCTrackEvent requires two arguments");
8
+ super(type, eventInitDict);
9
+ const { receiver, track, transceiver } = eventInitDict ?? {};
10
+ if (!(receiver instanceof binding.RTCRtpReceiver)
11
+ || !(track instanceof binding.MediaStreamTrack)
12
+ || !(transceiver instanceof binding.RTCRtpTransceiver)) {
13
+ throw new TypeError("RTCTrackEvent requires a receiver, track and transceiver");
14
+ }
15
+ const source = eventInitDict.streams;
16
+ if (source !== undefined && (source == null || typeof source[Symbol.iterator] !== "function")) {
17
+ throw new TypeError("streams must be an iterable sequence");
18
+ }
19
+ const streams = source === undefined ? [] : Array.from(source);
20
+ if (!streams.every(stream => stream instanceof binding.MediaStream)) {
21
+ throw new TypeError("streams must contain MediaStream instances");
22
+ }
23
+ Object.defineProperties(this, {
24
+ receiver: { value: receiver, enumerable: true },
25
+ track: { value: track, enumerable: true },
26
+ transceiver: { value: transceiver, enumerable: true },
27
+ streams: { value: Object.freeze(streams), enumerable: true },
28
+ });
29
+ }
30
+ }
31
+
32
+ export { RTCTrackEvent as default };
33
+ //# sourceMappingURL=rtctrackevent.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rtctrackevent.js","sources":["../src/src/lib/rtctrackevent.ts"],"sourcesContent":[null],"names":[],"mappings":";;AAAA;AAGc,MAAO,aAAc,SAAQ,KAAK,CAAA;IAC9C,WAAA,CAAY,IAAI,EAAE,aAAa,EAAA;AAC7B,QAAA,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC;AAAE,YAAA,MAAM,IAAI,SAAS,CAAC,sCAAsC,CAAC;AACrF,QAAA,KAAK,CAAC,IAAI,EAAE,aAAa,CAAC;QAC1B,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,WAAW,EAAE,GAAG,aAAa,IAAI,EAAE;AAC5D,QAAA,IAAI,EAAE,QAAQ,YAAY,OAAO,CAAC,cAAc;AACzC,eAAA,EAAE,KAAK,YAAY,OAAO,CAAC,gBAAgB;eAC3C,EAAE,WAAW,YAAY,OAAO,CAAC,iBAAiB,CAAC,EAAE;AAC1D,YAAA,MAAM,IAAI,SAAS,CAAC,0DAA0D,CAAC;QACjF;AACA,QAAA,MAAM,MAAM,GAAG,aAAa,CAAC,OAAO;QACpC,IAAI,MAAM,KAAK,SAAS,KAAK,MAAM,IAAI,IAAI,IAAI,OAAO,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,UAAU,CAAC,EAAE;AAC7F,YAAA,MAAM,IAAI,SAAS,CAAC,sCAAsC,CAAC;QAC7D;AACA,QAAA,MAAM,OAAO,GAAG,MAAM,KAAK,SAAS,GAAG,EAAE,GAAG,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC;AAC9D,QAAA,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,IAAI,MAAM,YAAY,OAAO,CAAC,WAAW,CAAC,EAAE;AACnE,YAAA,MAAM,IAAI,SAAS,CAAC,4CAA4C,CAAC;QACnE;AACA,QAAA,MAAM,CAAC,gBAAgB,CAAC,IAAI,EAAE;YAC5B,QAAQ,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,UAAU,EAAE,IAAI,EAAE;YAC/C,KAAK,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE;YACzC,WAAW,EAAE,EAAE,KAAK,EAAE,WAAW,EAAE,UAAU,EAAE,IAAI,EAAE;AACrD,YAAA,OAAO,EAAE,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,UAAU,EAAE,IAAI,EAAE;AAC7D,SAAA,CAAC;IACJ;AACD;;"}
@@ -0,0 +1,2 @@
1
+ export declare function associateEndpoint(endpoint: any, peer: any): any;
2
+ export declare function associateTransceiver(transceiver: any, peer: any): any;
@@ -0,0 +1,37 @@
1
+ import binding from './binding.js';
2
+
3
+ // @ts-nocheck
4
+ // An endpoint keeps its native peer alive, without a global strong registry or
5
+ // an unsafe native owner pointer. Transceiver getters return cached wrappers.
6
+ const owners = new WeakMap();
7
+ function associateEndpoint(endpoint, peer) {
8
+ owners.set(endpoint, peer);
9
+ return endpoint;
10
+ }
11
+ function associateTransceiver(transceiver, peer) {
12
+ associateEndpoint(transceiver.sender, peer);
13
+ associateEndpoint(transceiver.receiver, peer);
14
+ return transceiver;
15
+ }
16
+ for (const Endpoint of [binding.RTCRtpSender, binding.RTCRtpReceiver]) {
17
+ // Historical addons used by release A/B benchmarks already expose a native,
18
+ // non-configurable method. Keep their native API intact; only new addons that
19
+ // omit the old stubs need the owner-aware JavaScript implementation.
20
+ if (Object.getOwnPropertyDescriptor(Endpoint.prototype, "getStats"))
21
+ continue;
22
+ Object.defineProperty(Endpoint.prototype, "getStats", {
23
+ configurable: true,
24
+ enumerable: true,
25
+ writable: true,
26
+ value: function getStats() {
27
+ const peer = owners.get(this);
28
+ if (!peer || !(this instanceof Endpoint)) {
29
+ return Promise.reject(new TypeError("Illegal invocation"));
30
+ }
31
+ return peer.getStats(this);
32
+ },
33
+ });
34
+ }
35
+
36
+ export { associateEndpoint, associateTransceiver };
37
+ //# sourceMappingURL=rtpstats.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rtpstats.js","sources":["../src/src/lib/rtpstats.ts"],"sourcesContent":[null],"names":[],"mappings":";;AAAA;AAGA;AACA;AACA,MAAM,MAAM,GAAG,IAAI,OAAO,EAAE;AAEtB,SAAU,iBAAiB,CAAC,QAAQ,EAAE,IAAI,EAAA;AAC9C,IAAA,MAAM,CAAC,GAAG,CAAC,QAAQ,EAAE,IAAI,CAAC;AAC1B,IAAA,OAAO,QAAQ;AACjB;AAEM,SAAU,oBAAoB,CAAC,WAAW,EAAE,IAAI,EAAA;AACpD,IAAA,iBAAiB,CAAC,WAAW,CAAC,MAAM,EAAE,IAAI,CAAC;AAC3C,IAAA,iBAAiB,CAAC,WAAW,CAAC,QAAQ,EAAE,IAAI,CAAC;AAC7C,IAAA,OAAO,WAAW;AACpB;AAEA,KAAK,MAAM,QAAQ,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE,OAAO,CAAC,cAAc,CAAC,EAAE;;;;IAIrE,IAAI,MAAM,CAAC,wBAAwB,CAAC,QAAQ,CAAC,SAAS,EAAE,UAAU,CAAC;QAAE;IACrE,MAAM,CAAC,cAAc,CAAC,QAAQ,CAAC,SAAS,EAAE,UAAU,EAAE;AACpD,QAAA,YAAY,EAAE,IAAI;AAClB,QAAA,UAAU,EAAE,IAAI;AAChB,QAAA,QAAQ,EAAE,IAAI;QACd,KAAK,EAAE,SAAS,QAAQ,GAAA;YACtB,MAAM,IAAI,GAAG,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC;YAC7B,IAAI,CAAC,IAAI,IAAI,EAAE,IAAI,YAAY,QAAQ,CAAC,EAAE;gBACxC,OAAO,OAAO,CAAC,MAAM,CAAC,IAAI,SAAS,CAAC,oBAAoB,CAAC,CAAC;YAC5D;AACA,YAAA,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;QAC5B,CAAC;AACF,KAAA,CAAC;AACJ;;"}
@@ -0,0 +1 @@
1
+ export default function RTCSessionDescription(descriptionInitDict: any): void;
@@ -0,0 +1,16 @@
1
+ // @ts-nocheck
2
+ function RTCSessionDescription(descriptionInitDict) {
3
+ if (!new.target) {
4
+ throw new TypeError("RTCSessionDescription must be constructed with new");
5
+ }
6
+ const type = `${descriptionInitDict?.type}`;
7
+ if (!["offer", "answer", "pranswer", "rollback"].includes(type)) {
8
+ throw new TypeError("RTCSessionDescription requires a valid SDP type");
9
+ }
10
+ this.type = type;
11
+ const sdp = descriptionInitDict.sdp;
12
+ this.sdp = sdp === undefined ? "" : `${sdp}`;
13
+ }
14
+
15
+ export { RTCSessionDescription as default };
16
+ //# sourceMappingURL=sessiondescription.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sessiondescription.js","sources":["../src/src/lib/sessiondescription.ts"],"sourcesContent":[null],"names":[],"mappings":"AAAA;AAGc,SAAU,qBAAqB,CAAC,mBAAmB,EAAA;AAC/D,IAAA,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE;AACf,QAAA,MAAM,IAAI,SAAS,CAAC,oDAAoD,CAAC;IAC3E;AACA,IAAA,MAAM,IAAI,GAAG,CAAA,EAAG,mBAAmB,EAAE,IAAI,EAAE;AAC3C,IAAA,IAAI,CAAC,CAAC,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE;AAC/D,QAAA,MAAM,IAAI,SAAS,CAAC,iDAAiD,CAAC;IACxE;AACA,IAAA,IAAI,CAAC,IAAI,GAAG,IAAI;AAChB,IAAA,MAAM,GAAG,GAAG,mBAAmB,CAAC,GAAG;AACnC,IAAA,IAAI,CAAC,GAAG,GAAG,GAAG,KAAK,SAAS,GAAG,EAAE,GAAG,CAAA,EAAG,GAAG,EAAE;AAC9C;;"}
@@ -0,0 +1 @@
1
+ export default function installTrackConstraints(Track: any): void;
@@ -0,0 +1,146 @@
1
+ // @ts-nocheck
2
+ // These tracks have externally supplied media, not controllable capture
3
+ // devices. Never claim that recording a requested constraint changes media.
4
+ const numeric = new Set([
5
+ "width", "height", "aspectRatio", "frameRate", "sampleRate", "sampleSize",
6
+ "latency", "channelCount",
7
+ ]);
8
+ const strings = new Set(["deviceId", "groupId", "facingMode", "resizeMode"]);
9
+ const booleans = new Set(["echoCancellation", "autoGainControl", "noiseSuppression"]);
10
+ const video = new Set(["width", "height", "aspectRatio", "frameRate"]);
11
+ const audio = new Set(["sampleRate", "sampleSize", "latency", "channelCount", ...booleans]);
12
+ function dictionary(value) {
13
+ if (value == null)
14
+ return {};
15
+ if (typeof value !== "object" && typeof value !== "function") {
16
+ throw new TypeError("Constraints must be a dictionary");
17
+ }
18
+ return value;
19
+ }
20
+ function convert(name, value) {
21
+ if (numeric.has(name)) {
22
+ if (typeof value === "bigint")
23
+ throw new TypeError(`${name} cannot be a BigInt`);
24
+ const number = Number(value);
25
+ const double = ["aspectRatio", "frameRate", "latency"].includes(name);
26
+ if (double && !Number.isFinite(number))
27
+ throw new TypeError(`${name} must be finite`);
28
+ // Web IDL unsigned long conversion, not range enforcement.
29
+ return double ? number : (Math.trunc(number) >>> 0);
30
+ }
31
+ if (booleans.has(name))
32
+ return Boolean(value);
33
+ if (typeof value === "symbol")
34
+ throw new TypeError("Cannot convert Symbol to string");
35
+ return String(value);
36
+ }
37
+ function normalizeSet(value) {
38
+ const input = dictionary(value);
39
+ const result = {};
40
+ for (const name of [...numeric, ...strings, ...booleans]) {
41
+ const entry = input[name];
42
+ if (entry === undefined)
43
+ continue;
44
+ const sequence = item => strings.has(name) && item !== null &&
45
+ (typeof item === "object" || typeof item === "function") &&
46
+ typeof item[Symbol.iterator] === "function";
47
+ const convertValue = item => sequence(item)
48
+ ? Array.from(item, value => convert(name, value)) : convert(name, item);
49
+ if (entry == null || ((typeof entry === "object" || typeof entry === "function") && !sequence(entry))) {
50
+ const parameter = {};
51
+ for (const key of numeric.has(name) ? ["min", "max", "exact", "ideal"] : ["exact", "ideal"]) {
52
+ const value = entry?.[key];
53
+ if (value !== undefined)
54
+ parameter[key] = convertValue(value);
55
+ }
56
+ result[name] = parameter;
57
+ }
58
+ else {
59
+ result[name] = convertValue(entry);
60
+ }
61
+ }
62
+ return result;
63
+ }
64
+ function normalize(value) {
65
+ const input = dictionary(value);
66
+ const result = normalizeSet(input);
67
+ const advanced = input.advanced;
68
+ if (advanced !== undefined) {
69
+ if (advanced == null || typeof advanced[Symbol.iterator] !== "function") {
70
+ throw new TypeError("advanced must be a sequence");
71
+ }
72
+ result.advanced = Array.from(advanced, normalizeSet);
73
+ }
74
+ return result;
75
+ }
76
+ function overconstrained(name) {
77
+ const error = new DOMException(`The source cannot apply ${name}`, "OverconstrainedError");
78
+ Object.defineProperty(error, "constraint", { value: name, enumerable: true });
79
+ return error;
80
+ }
81
+ function installTrackConstraints(Track) {
82
+ const descriptor = Object.getOwnPropertyDescriptor(Track.prototype, "_remote");
83
+ // Historical release benchmarks can load an older native addon through the
84
+ // current JS wrapper. Do not replace its clone or require new native hooks.
85
+ if (!descriptor?.get || typeof Track.prototype._clone !== "function")
86
+ return;
87
+ const constraints = new WeakMap();
88
+ const remoteGetter = descriptor.get;
89
+ function isRemote(track) {
90
+ try {
91
+ return remoteGetter.call(track);
92
+ }
93
+ catch (cause) {
94
+ // N-API reports a generic Invalid argument error for an unwrapped
95
+ // receiver; Web IDL requires TypeError for an illegal invocation.
96
+ throw new TypeError("Illegal MediaStreamTrack invocation", { cause });
97
+ }
98
+ }
99
+ Track.prototype.getCapabilities = function getCapabilities() {
100
+ // Remote tracks MUST have empty capabilities. Manually fed local sources
101
+ // likewise provide no capture-device controls or stable capability ranges.
102
+ isRemote(this);
103
+ return {};
104
+ };
105
+ Track.prototype.getConstraints = function getConstraints() {
106
+ isRemote(this);
107
+ return structuredClone(constraints.get(this) || {});
108
+ };
109
+ Track.prototype.applyConstraints = async function applyConstraints(value) {
110
+ const remote = isRemote(this);
111
+ const requested = normalize(value);
112
+ if (this.readyState === "ended")
113
+ return;
114
+ if (remote && this.kind === "video") {
115
+ for (const set of [requested, ...(requested.advanced || [])]) {
116
+ for (const name of Object.keys(set)) {
117
+ if (video.has(name))
118
+ throw overconstrained(name);
119
+ }
120
+ }
121
+ }
122
+ for (const [name, entry] of Object.entries(requested)) {
123
+ if (name === "advanced")
124
+ continue;
125
+ const applicable = name === "deviceId" || name === "groupId" ||
126
+ (this.kind === "video" ? video.has(name) || ["facingMode", "resizeMode"].includes(name) : audio.has(name));
127
+ if (!remote && applicable && entry && typeof entry === "object" &&
128
+ ["exact", "min", "max"].some(key => key in entry)) {
129
+ // Capture reconfiguration is unavailable; reject required controls
130
+ // instead of reporting success without changing the native source.
131
+ throw overconstrained(name);
132
+ }
133
+ }
134
+ // Unsatisfiable advanced sets are optional and skipped. Preserve the
135
+ // converted request independently from caller-owned objects and clones.
136
+ constraints.set(this, requested);
137
+ };
138
+ Track.prototype.clone = function clone() {
139
+ const track = this._clone();
140
+ constraints.set(track, structuredClone(constraints.get(this) || {}));
141
+ return track;
142
+ };
143
+ }
144
+
145
+ export { installTrackConstraints as default };
146
+ //# sourceMappingURL=trackconstraints.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"trackconstraints.js","sources":["../src/src/lib/trackconstraints.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}