mediasoup-client 3.14.0 → 3.14.2

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 (40) hide show
  1. package/lib/Consumer.d.ts.map +1 -1
  2. package/lib/Consumer.js +3 -0
  3. package/lib/DataConsumer.d.ts.map +1 -1
  4. package/lib/DataConsumer.js +3 -0
  5. package/lib/DataProducer.d.ts.map +1 -1
  6. package/lib/DataProducer.js +3 -0
  7. package/lib/Producer.d.ts.map +1 -1
  8. package/lib/Producer.js +3 -0
  9. package/lib/Transport.d.ts.map +1 -1
  10. package/lib/Transport.js +3 -0
  11. package/lib/enhancedEvents.d.ts +4 -0
  12. package/lib/enhancedEvents.d.ts.map +1 -1
  13. package/lib/enhancedEvents.js +6 -0
  14. package/lib/handlers/Chrome111.d.ts +7 -2
  15. package/lib/handlers/Chrome111.d.ts.map +1 -1
  16. package/lib/handlers/Chrome111.js +54 -44
  17. package/lib/handlers/Chrome74.d.ts +7 -2
  18. package/lib/handlers/Chrome74.d.ts.map +1 -1
  19. package/lib/handlers/Chrome74.js +54 -44
  20. package/lib/handlers/FakeHandler.d.ts +3 -2
  21. package/lib/handlers/FakeHandler.d.ts.map +1 -1
  22. package/lib/handlers/FakeHandler.js +4 -2
  23. package/lib/handlers/Firefox120.d.ts +7 -2
  24. package/lib/handlers/Firefox120.d.ts.map +1 -1
  25. package/lib/handlers/Firefox120.js +55 -45
  26. package/lib/handlers/HandlerInterface.d.ts.map +1 -1
  27. package/lib/handlers/ReactNative106.d.ts +7 -2
  28. package/lib/handlers/ReactNative106.d.ts.map +1 -1
  29. package/lib/handlers/ReactNative106.js +55 -45
  30. package/lib/handlers/Safari12.d.ts +7 -2
  31. package/lib/handlers/Safari12.d.ts.map +1 -1
  32. package/lib/handlers/Safari12.js +55 -39
  33. package/lib/index.d.ts +5 -1
  34. package/lib/index.d.ts.map +1 -1
  35. package/lib/index.js +6 -2
  36. package/lib/test/test.js +4 -2
  37. package/lib/types.d.ts +11 -10
  38. package/lib/types.d.ts.map +1 -1
  39. package/lib/types.js +0 -24
  40. package/package.json +12 -8
@@ -2,14 +2,14 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.FakeHandler = void 0;
4
4
  const fake_mediastreamtrack_1 = require("fake-mediastreamtrack");
5
+ const enhancedEvents_1 = require("../enhancedEvents");
5
6
  const Logger_1 = require("../Logger");
6
7
  const utils = require("../utils");
7
8
  const ortc = require("../ortc");
8
9
  const errors_1 = require("../errors");
9
- const HandlerInterface_1 = require("./HandlerInterface");
10
10
  const logger = new Logger_1.Logger('FakeHandler');
11
11
  const NAME = 'FakeHandler';
12
- class FakeHandler extends HandlerInterface_1.HandlerInterface {
12
+ class FakeHandler extends enhancedEvents_1.EnhancedEventEmitter {
13
13
  // Closed flag.
14
14
  _closed = false;
15
15
  // Fake parameters source of RTP and SCTP parameters and capabilities.
@@ -72,6 +72,8 @@ class FakeHandler extends HandlerInterface_1.HandlerInterface {
72
72
  return;
73
73
  }
74
74
  this._closed = true;
75
+ // Invoke close() in EnhancedEventEmitter classes.
76
+ super.close();
75
77
  }
76
78
  // NOTE: Custom method for simulation purposes.
77
79
  setIceGatheringState(iceGatheringState) {
@@ -1,6 +1,7 @@
1
+ import { EnhancedEventEmitter } from '../enhancedEvents';
1
2
  import type { IceParameters } from '../Transport';
2
- import { type HandlerFactory, HandlerInterface, type HandlerSendOptions, type HandlerSendResult, type HandlerReceiveOptions, type HandlerReceiveResult, type HandlerSendDataChannelOptions, type HandlerSendDataChannelResult, type HandlerReceiveDataChannelOptions, type HandlerReceiveDataChannelResult } from './HandlerInterface';
3
- export declare class Firefox120 extends HandlerInterface {
3
+ import type { HandlerFactory, HandlerInterface, HandlerEvents, HandlerSendOptions, HandlerSendResult, HandlerReceiveOptions, HandlerReceiveResult, HandlerSendDataChannelOptions, HandlerSendDataChannelResult, HandlerReceiveDataChannelOptions, HandlerReceiveDataChannelResult } from './HandlerInterface';
4
+ export declare class Firefox120 extends EnhancedEventEmitter<HandlerEvents> implements HandlerInterface {
4
5
  private _closed;
5
6
  private _direction;
6
7
  private _remoteSdp;
@@ -38,6 +39,10 @@ export declare class Firefox120 extends HandlerInterface {
38
39
  getReceiverStats(localId: string): Promise<RTCStatsReport>;
39
40
  receiveDataChannel({ sctpStreamParameters, label, protocol, }: HandlerReceiveDataChannelOptions): Promise<HandlerReceiveDataChannelResult>;
40
41
  private setupTransport;
42
+ private onIceGatheringStateChange;
43
+ private onIceCandidateError;
44
+ private onConnectionStateChange;
45
+ private onIceConnectionStateChange;
41
46
  private assertNotClosed;
42
47
  private assertSendDirection;
43
48
  private assertRecvDirection;
@@ -1 +1 @@
1
- {"version":3,"file":"Firefox120.d.ts","sourceRoot":"","sources":["../../src/handlers/Firefox120.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Firefox120.d.ts","sourceRoot":"","sources":["../../src/handlers/Firefox120.ts"],"names":[],"mappings":"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"}
@@ -2,6 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.Firefox120 = void 0;
4
4
  const sdpTransform = require("sdp-transform");
5
+ const enhancedEvents_1 = require("../enhancedEvents");
5
6
  const Logger_1 = require("../Logger");
6
7
  const errors_1 = require("../errors");
7
8
  const utils = require("../utils");
@@ -9,12 +10,11 @@ const ortc = require("../ortc");
9
10
  const scalabilityModes_1 = require("../scalabilityModes");
10
11
  const sdpCommonUtils = require("./sdp/commonUtils");
11
12
  const sdpUnifiedPlanUtils = require("./sdp/unifiedPlanUtils");
12
- const HandlerInterface_1 = require("./HandlerInterface");
13
13
  const RemoteSdp_1 = require("./sdp/RemoteSdp");
14
14
  const logger = new Logger_1.Logger('Firefox120');
15
15
  const NAME = 'Firefox120';
16
16
  const SCTP_NUM_STREAMS = { OS: 16, MIS: 2048 };
17
- class Firefox120 extends HandlerInterface_1.HandlerInterface {
17
+ class Firefox120 extends enhancedEvents_1.EnhancedEventEmitter {
18
18
  // Closed flag.
19
19
  _closed = false;
20
20
  // Handler direction.
@@ -47,7 +47,7 @@ class Firefox120 extends HandlerInterface_1.HandlerInterface {
47
47
  factory: (options) => new Firefox120(options),
48
48
  getNativeRtpCapabilities: async () => {
49
49
  logger.debug('getNativeRtpCapabilities()');
50
- const pc = new RTCPeerConnection({
50
+ let pc = new RTCPeerConnection({
51
51
  iceServers: [],
52
52
  iceTransportPolicy: 'all',
53
53
  bundlePolicy: 'max-bundle',
@@ -82,6 +82,7 @@ class Firefox120 extends HandlerInterface_1.HandlerInterface {
82
82
  pc.close();
83
83
  }
84
84
  catch (error) { }
85
+ pc = undefined;
85
86
  const sdpObject = sdpTransform.parse(offer.sdp);
86
87
  const nativeRtpCapabilities = sdpCommonUtils.extractRtpCapabilities({
87
88
  sdpObject,
@@ -98,9 +99,10 @@ class Firefox120 extends HandlerInterface_1.HandlerInterface {
98
99
  }
99
100
  catch (error2) { }
100
101
  try {
101
- pc.close();
102
+ pc?.close();
102
103
  }
103
104
  catch (error2) { }
105
+ pc = undefined;
104
106
  throw error;
105
107
  }
106
108
  },
@@ -137,44 +139,14 @@ class Firefox120 extends HandlerInterface_1.HandlerInterface {
137
139
  rtcpMuxPolicy: 'require',
138
140
  ...additionalSettings,
139
141
  });
140
- this._pc.addEventListener('icegatheringstatechange', () => {
141
- this.emit('@icegatheringstatechange', this._pc.iceGatheringState);
142
- });
143
- this._pc.addEventListener('icecandidateerror', (event) => {
144
- this.emit('@icecandidateerror', event);
145
- });
142
+ this._pc.addEventListener('icegatheringstatechange', this.onIceGatheringStateChange);
143
+ this._pc.addEventListener('icecandidateerror', this.onIceCandidateError);
146
144
  if (this._pc.connectionState) {
147
- this._pc.addEventListener('connectionstatechange', () => {
148
- this.emit('@connectionstatechange', this._pc.connectionState);
149
- });
145
+ this._pc.addEventListener('connectionstatechange', this.onConnectionStateChange);
150
146
  }
151
147
  else {
152
- this._pc.addEventListener('iceconnectionstatechange', () => {
153
- logger.warn('run() | pc.connectionState not supported, using pc.iceConnectionState');
154
- switch (this._pc.iceConnectionState) {
155
- case 'checking': {
156
- this.emit('@connectionstatechange', 'connecting');
157
- break;
158
- }
159
- case 'connected':
160
- case 'completed': {
161
- this.emit('@connectionstatechange', 'connected');
162
- break;
163
- }
164
- case 'failed': {
165
- this.emit('@connectionstatechange', 'failed');
166
- break;
167
- }
168
- case 'disconnected': {
169
- this.emit('@connectionstatechange', 'disconnected');
170
- break;
171
- }
172
- case 'closed': {
173
- this.emit('@connectionstatechange', 'closed');
174
- break;
175
- }
176
- }
177
- });
148
+ logger.warn('run() | pc.connectionState not supported, using pc.iceConnectionState');
149
+ this._pc.addEventListener('iceconnectionstatechange', this.onIceConnectionStateChange);
178
150
  }
179
151
  }
180
152
  get name() {
@@ -187,13 +159,17 @@ class Firefox120 extends HandlerInterface_1.HandlerInterface {
187
159
  }
188
160
  this._closed = true;
189
161
  // Close RTCPeerConnection.
190
- if (this._pc) {
191
- try {
192
- this._pc.close();
193
- }
194
- catch (error) { }
195
- }
162
+ try {
163
+ this._pc.close();
164
+ }
165
+ catch (error) { }
166
+ this._pc.removeEventListener('icegatheringstatechange', this.onIceGatheringStateChange);
167
+ this._pc.removeEventListener('icecandidateerror', this.onIceCandidateError);
168
+ this._pc.removeEventListener('connectionstatechange', this.onConnectionStateChange);
169
+ this._pc.removeEventListener('iceconnectionstatechange', this.onIceConnectionStateChange);
196
170
  this.emit('@close');
171
+ // Invoke close() in EnhancedEventEmitter classes.
172
+ super.close();
197
173
  }
198
174
  // eslint-disable-next-line @typescript-eslint/no-unused-vars
199
175
  async updateIceServers(iceServers) {
@@ -745,6 +721,40 @@ class Firefox120 extends HandlerInterface_1.HandlerInterface {
745
721
  });
746
722
  this._transportReady = true;
747
723
  }
724
+ onIceGatheringStateChange = () => {
725
+ this.emit('@icegatheringstatechange', this._pc.iceGatheringState);
726
+ };
727
+ onIceCandidateError = (event) => {
728
+ this.emit('@icecandidateerror', event);
729
+ };
730
+ onConnectionStateChange = () => {
731
+ this.emit('@connectionstatechange', this._pc.connectionState);
732
+ };
733
+ onIceConnectionStateChange = () => {
734
+ switch (this._pc.iceConnectionState) {
735
+ case 'checking': {
736
+ this.emit('@connectionstatechange', 'connecting');
737
+ break;
738
+ }
739
+ case 'connected':
740
+ case 'completed': {
741
+ this.emit('@connectionstatechange', 'connected');
742
+ break;
743
+ }
744
+ case 'failed': {
745
+ this.emit('@connectionstatechange', 'failed');
746
+ break;
747
+ }
748
+ case 'disconnected': {
749
+ this.emit('@connectionstatechange', 'disconnected');
750
+ break;
751
+ }
752
+ case 'closed': {
753
+ this.emit('@connectionstatechange', 'closed');
754
+ break;
755
+ }
756
+ }
757
+ };
748
758
  assertNotClosed() {
749
759
  if (this._closed) {
750
760
  throw new errors_1.InvalidStateError('method called in a closed handler');
@@ -1 +1 @@
1
- {"version":3,"file":"HandlerInterface.d.ts","sourceRoot":"","sources":["../../src/handlers/HandlerInterface.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"HandlerInterface.d.ts","sourceRoot":"","sources":["../../src/handlers/HandlerInterface.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,7 @@
1
+ import { EnhancedEventEmitter } from '../enhancedEvents';
1
2
  import type { IceParameters } from '../Transport';
2
- import { type HandlerFactory, HandlerInterface, type HandlerSendOptions, type HandlerSendResult, type HandlerReceiveOptions, type HandlerReceiveResult, type HandlerSendDataChannelOptions, type HandlerSendDataChannelResult, type HandlerReceiveDataChannelOptions, type HandlerReceiveDataChannelResult } from './HandlerInterface';
3
- export declare class ReactNative106 extends HandlerInterface {
3
+ import type { HandlerFactory, HandlerInterface, HandlerEvents, HandlerSendOptions, HandlerSendResult, HandlerReceiveOptions, HandlerReceiveResult, HandlerSendDataChannelOptions, HandlerSendDataChannelResult, HandlerReceiveDataChannelOptions, HandlerReceiveDataChannelResult } from './HandlerInterface';
4
+ export declare class ReactNative106 extends EnhancedEventEmitter<HandlerEvents> implements HandlerInterface {
4
5
  private _closed;
5
6
  private _direction;
6
7
  private _remoteSdp;
@@ -39,6 +40,10 @@ export declare class ReactNative106 extends HandlerInterface {
39
40
  getReceiverStats(localId: string): Promise<RTCStatsReport>;
40
41
  receiveDataChannel({ sctpStreamParameters, label, protocol, }: HandlerReceiveDataChannelOptions): Promise<HandlerReceiveDataChannelResult>;
41
42
  private setupTransport;
43
+ private onIceGatheringStateChange;
44
+ private onIceCandidateError;
45
+ private onConnectionStateChange;
46
+ private onIceConnectionStateChange;
42
47
  private assertNotClosed;
43
48
  private assertSendDirection;
44
49
  private assertRecvDirection;
@@ -1 +1 @@
1
- {"version":3,"file":"ReactNative106.d.ts","sourceRoot":"","sources":["../../src/handlers/ReactNative106.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ReactNative106.d.ts","sourceRoot":"","sources":["../../src/handlers/ReactNative106.ts"],"names":[],"mappings":"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"}
@@ -2,12 +2,12 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.ReactNative106 = void 0;
4
4
  const sdpTransform = require("sdp-transform");
5
+ const enhancedEvents_1 = require("../enhancedEvents");
5
6
  const Logger_1 = require("../Logger");
6
7
  const utils = require("../utils");
7
8
  const ortc = require("../ortc");
8
9
  const errors_1 = require("../errors");
9
10
  const scalabilityModes_1 = require("../scalabilityModes");
10
- const HandlerInterface_1 = require("./HandlerInterface");
11
11
  const RemoteSdp_1 = require("./sdp/RemoteSdp");
12
12
  const sdpCommonUtils = require("./sdp/commonUtils");
13
13
  const sdpUnifiedPlanUtils = require("./sdp/unifiedPlanUtils");
@@ -15,7 +15,7 @@ const ortcUtils = require("./ortc/utils");
15
15
  const logger = new Logger_1.Logger('ReactNative106');
16
16
  const NAME = 'ReactNative106';
17
17
  const SCTP_NUM_STREAMS = { OS: 1024, MIS: 1024 };
18
- class ReactNative106 extends HandlerInterface_1.HandlerInterface {
18
+ class ReactNative106 extends enhancedEvents_1.EnhancedEventEmitter {
19
19
  // Closed flag.
20
20
  _closed = false;
21
21
  // Handler direction.
@@ -51,7 +51,7 @@ class ReactNative106 extends HandlerInterface_1.HandlerInterface {
51
51
  factory: (options) => new ReactNative106(options),
52
52
  getNativeRtpCapabilities: async () => {
53
53
  logger.debug('getNativeRtpCapabilities()');
54
- const pc = new RTCPeerConnection({
54
+ let pc = new RTCPeerConnection({
55
55
  iceServers: [],
56
56
  iceTransportPolicy: 'all',
57
57
  bundlePolicy: 'max-bundle',
@@ -65,6 +65,7 @@ class ReactNative106 extends HandlerInterface_1.HandlerInterface {
65
65
  pc.close();
66
66
  }
67
67
  catch (error) { }
68
+ pc = undefined;
68
69
  const sdpObject = sdpTransform.parse(offer.sdp);
69
70
  const nativeRtpCapabilities = sdpCommonUtils.extractRtpCapabilities({
70
71
  sdpObject,
@@ -75,9 +76,10 @@ class ReactNative106 extends HandlerInterface_1.HandlerInterface {
75
76
  }
76
77
  catch (error) {
77
78
  try {
78
- pc.close();
79
+ pc?.close();
79
80
  }
80
81
  catch (error2) { }
82
+ pc = undefined;
81
83
  throw error;
82
84
  }
83
85
  },
@@ -118,44 +120,14 @@ class ReactNative106 extends HandlerInterface_1.HandlerInterface {
118
120
  rtcpMuxPolicy: 'require',
119
121
  ...additionalSettings,
120
122
  });
121
- this._pc.addEventListener('icegatheringstatechange', () => {
122
- this.emit('@icegatheringstatechange', this._pc.iceGatheringState);
123
- });
124
- this._pc.addEventListener('icecandidateerror', (event) => {
125
- this.emit('@icecandidateerror', event);
126
- });
123
+ this._pc.addEventListener('icegatheringstatechange', this.onIceGatheringStateChange);
124
+ this._pc.addEventListener('icecandidateerror', this.onIceCandidateError);
127
125
  if (this._pc.connectionState) {
128
- this._pc.addEventListener('connectionstatechange', () => {
129
- this.emit('@connectionstatechange', this._pc.connectionState);
130
- });
126
+ this._pc.addEventListener('connectionstatechange', this.onConnectionStateChange);
131
127
  }
132
128
  else {
133
- this._pc.addEventListener('iceconnectionstatechange', () => {
134
- logger.warn('run() | pc.connectionState not supported, using pc.iceConnectionState');
135
- switch (this._pc.iceConnectionState) {
136
- case 'checking': {
137
- this.emit('@connectionstatechange', 'connecting');
138
- break;
139
- }
140
- case 'connected':
141
- case 'completed': {
142
- this.emit('@connectionstatechange', 'connected');
143
- break;
144
- }
145
- case 'failed': {
146
- this.emit('@connectionstatechange', 'failed');
147
- break;
148
- }
149
- case 'disconnected': {
150
- this.emit('@connectionstatechange', 'disconnected');
151
- break;
152
- }
153
- case 'closed': {
154
- this.emit('@connectionstatechange', 'closed');
155
- break;
156
- }
157
- }
158
- });
129
+ logger.warn('run() | pc.connectionState not supported, using pc.iceConnectionState');
130
+ this._pc.addEventListener('iceconnectionstatechange', this.onIceConnectionStateChange);
159
131
  }
160
132
  }
161
133
  get name() {
@@ -172,13 +144,17 @@ class ReactNative106 extends HandlerInterface_1.HandlerInterface {
172
144
  // @ts-expect-error --- Proprietary API in react-native-webrtc.
173
145
  this._sendStream.release(/* releaseTracks */ false);
174
146
  // Close RTCPeerConnection.
175
- if (this._pc) {
176
- try {
177
- this._pc.close();
178
- }
179
- catch (error) { }
180
- }
147
+ try {
148
+ this._pc.close();
149
+ }
150
+ catch (error) { }
151
+ this._pc.removeEventListener('icegatheringstatechange', this.onIceGatheringStateChange);
152
+ this._pc.removeEventListener('icecandidateerror', this.onIceCandidateError);
153
+ this._pc.removeEventListener('connectionstatechange', this.onConnectionStateChange);
154
+ this._pc.removeEventListener('iceconnectionstatechange', this.onIceConnectionStateChange);
181
155
  this.emit('@close');
156
+ // Invoke close() in EnhancedEventEmitter classes.
157
+ super.close();
182
158
  }
183
159
  async updateIceServers(iceServers) {
184
160
  this.assertNotClosed();
@@ -778,6 +754,40 @@ class ReactNative106 extends HandlerInterface_1.HandlerInterface {
778
754
  });
779
755
  this._transportReady = true;
780
756
  }
757
+ onIceGatheringStateChange = () => {
758
+ this.emit('@icegatheringstatechange', this._pc.iceGatheringState);
759
+ };
760
+ onIceCandidateError = (event) => {
761
+ this.emit('@icecandidateerror', event);
762
+ };
763
+ onConnectionStateChange = () => {
764
+ this.emit('@connectionstatechange', this._pc.connectionState);
765
+ };
766
+ onIceConnectionStateChange = () => {
767
+ switch (this._pc.iceConnectionState) {
768
+ case 'checking': {
769
+ this.emit('@connectionstatechange', 'connecting');
770
+ break;
771
+ }
772
+ case 'connected':
773
+ case 'completed': {
774
+ this.emit('@connectionstatechange', 'connected');
775
+ break;
776
+ }
777
+ case 'failed': {
778
+ this.emit('@connectionstatechange', 'failed');
779
+ break;
780
+ }
781
+ case 'disconnected': {
782
+ this.emit('@connectionstatechange', 'disconnected');
783
+ break;
784
+ }
785
+ case 'closed': {
786
+ this.emit('@connectionstatechange', 'closed');
787
+ break;
788
+ }
789
+ }
790
+ };
781
791
  assertNotClosed() {
782
792
  if (this._closed) {
783
793
  throw new errors_1.InvalidStateError('method called in a closed handler');
@@ -1,6 +1,7 @@
1
+ import { EnhancedEventEmitter } from '../enhancedEvents';
1
2
  import type { IceParameters } from '../Transport';
2
- import { type HandlerFactory, HandlerInterface, type HandlerOptions, type HandlerSendOptions, type HandlerSendResult, type HandlerReceiveOptions, type HandlerReceiveResult, type HandlerSendDataChannelOptions, type HandlerSendDataChannelResult, type HandlerReceiveDataChannelOptions, type HandlerReceiveDataChannelResult } from './HandlerInterface';
3
- export declare class Safari12 extends HandlerInterface {
3
+ import type { HandlerFactory, HandlerInterface, HandlerEvents, HandlerOptions, HandlerSendOptions, HandlerSendResult, HandlerReceiveOptions, HandlerReceiveResult, HandlerSendDataChannelOptions, HandlerSendDataChannelResult, HandlerReceiveDataChannelOptions, HandlerReceiveDataChannelResult } from './HandlerInterface';
4
+ export declare class Safari12 extends EnhancedEventEmitter<HandlerEvents> implements HandlerInterface {
4
5
  private _closed;
5
6
  private _direction;
6
7
  private _remoteSdp;
@@ -39,6 +40,10 @@ export declare class Safari12 extends HandlerInterface {
39
40
  getReceiverStats(localId: string): Promise<RTCStatsReport>;
40
41
  receiveDataChannel({ sctpStreamParameters, label, protocol, }: HandlerReceiveDataChannelOptions): Promise<HandlerReceiveDataChannelResult>;
41
42
  private setupTransport;
43
+ private onIceGatheringStateChange;
44
+ private onIceCandidateError;
45
+ private onConnectionStateChange;
46
+ private onIceConnectionStateChange;
42
47
  private assertNotClosed;
43
48
  private assertSendDirection;
44
49
  private assertRecvDirection;
@@ -1 +1 @@
1
- {"version":3,"file":"Safari12.d.ts","sourceRoot":"","sources":["../../src/handlers/Safari12.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Safari12.d.ts","sourceRoot":"","sources":["../../src/handlers/Safari12.ts"],"names":[],"mappings":"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"}
@@ -2,12 +2,12 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.Safari12 = void 0;
4
4
  const sdpTransform = require("sdp-transform");
5
+ const enhancedEvents_1 = require("../enhancedEvents");
5
6
  const Logger_1 = require("../Logger");
6
7
  const utils = require("../utils");
7
8
  const ortc = require("../ortc");
8
9
  const errors_1 = require("../errors");
9
10
  const scalabilityModes_1 = require("../scalabilityModes");
10
- const HandlerInterface_1 = require("./HandlerInterface");
11
11
  const RemoteSdp_1 = require("./sdp/RemoteSdp");
12
12
  const sdpCommonUtils = require("./sdp/commonUtils");
13
13
  const sdpUnifiedPlanUtils = require("./sdp/unifiedPlanUtils");
@@ -15,7 +15,7 @@ const ortcUtils = require("./ortc/utils");
15
15
  const logger = new Logger_1.Logger('Safari12');
16
16
  const NAME = 'Safari12';
17
17
  const SCTP_NUM_STREAMS = { OS: 1024, MIS: 1024 };
18
- class Safari12 extends HandlerInterface_1.HandlerInterface {
18
+ class Safari12 extends enhancedEvents_1.EnhancedEventEmitter {
19
19
  // Closed flag.
20
20
  _closed = false;
21
21
  // Handler direction.
@@ -51,7 +51,7 @@ class Safari12 extends HandlerInterface_1.HandlerInterface {
51
51
  factory: (options) => new Safari12(options),
52
52
  getNativeRtpCapabilities: async () => {
53
53
  logger.debug('getNativeRtpCapabilities()');
54
- const pc = new RTCPeerConnection({
54
+ let pc = new RTCPeerConnection({
55
55
  iceServers: [],
56
56
  iceTransportPolicy: 'all',
57
57
  bundlePolicy: 'max-bundle',
@@ -65,6 +65,7 @@ class Safari12 extends HandlerInterface_1.HandlerInterface {
65
65
  pc.close();
66
66
  }
67
67
  catch (error) { }
68
+ pc = undefined;
68
69
  const sdpObject = sdpTransform.parse(offer.sdp);
69
70
  const nativeRtpCapabilities = sdpCommonUtils.extractRtpCapabilities({
70
71
  sdpObject,
@@ -75,9 +76,10 @@ class Safari12 extends HandlerInterface_1.HandlerInterface {
75
76
  }
76
77
  catch (error) {
77
78
  try {
78
- pc.close();
79
+ pc?.close();
79
80
  }
80
81
  catch (error2) { }
82
+ pc = undefined;
81
83
  throw error;
82
84
  }
83
85
  },
@@ -124,38 +126,14 @@ class Safari12 extends HandlerInterface_1.HandlerInterface {
124
126
  this._pc.addEventListener('icecandidateerror', (event) => {
125
127
  this.emit('@icecandidateerror', event);
126
128
  });
129
+ this._pc.addEventListener('icegatheringstatechange', this.onIceGatheringStateChange);
130
+ this._pc.addEventListener('icecandidateerror', this.onIceCandidateError);
127
131
  if (this._pc.connectionState) {
128
- this._pc.addEventListener('connectionstatechange', () => {
129
- this.emit('@connectionstatechange', this._pc.connectionState);
130
- });
132
+ this._pc.addEventListener('connectionstatechange', this.onConnectionStateChange);
131
133
  }
132
134
  else {
133
- this._pc.addEventListener('iceconnectionstatechange', () => {
134
- logger.warn('run() | pc.connectionState not supported, using pc.iceConnectionState');
135
- switch (this._pc.iceConnectionState) {
136
- case 'checking': {
137
- this.emit('@connectionstatechange', 'connecting');
138
- break;
139
- }
140
- case 'connected':
141
- case 'completed': {
142
- this.emit('@connectionstatechange', 'connected');
143
- break;
144
- }
145
- case 'failed': {
146
- this.emit('@connectionstatechange', 'failed');
147
- break;
148
- }
149
- case 'disconnected': {
150
- this.emit('@connectionstatechange', 'disconnected');
151
- break;
152
- }
153
- case 'closed': {
154
- this.emit('@connectionstatechange', 'closed');
155
- break;
156
- }
157
- }
158
- });
135
+ logger.warn('run() | pc.connectionState not supported, using pc.iceConnectionState');
136
+ this._pc.addEventListener('iceconnectionstatechange', this.onIceConnectionStateChange);
159
137
  }
160
138
  }
161
139
  get name() {
@@ -168,13 +146,17 @@ class Safari12 extends HandlerInterface_1.HandlerInterface {
168
146
  }
169
147
  this._closed = true;
170
148
  // Close RTCPeerConnection.
171
- if (this._pc) {
172
- try {
173
- this._pc.close();
174
- }
175
- catch (error) { }
176
- }
149
+ try {
150
+ this._pc.close();
151
+ }
152
+ catch (error) { }
153
+ this._pc.removeEventListener('icegatheringstatechange', this.onIceGatheringStateChange);
154
+ this._pc.removeEventListener('icecandidateerror', this.onIceCandidateError);
155
+ this._pc.removeEventListener('connectionstatechange', this.onConnectionStateChange);
156
+ this._pc.removeEventListener('iceconnectionstatechange', this.onIceConnectionStateChange);
177
157
  this.emit('@close');
158
+ // Invoke close() in EnhancedEventEmitter classes.
159
+ super.close();
178
160
  }
179
161
  async updateIceServers(iceServers) {
180
162
  this.assertNotClosed();
@@ -731,6 +713,40 @@ class Safari12 extends HandlerInterface_1.HandlerInterface {
731
713
  });
732
714
  this._transportReady = true;
733
715
  }
716
+ onIceGatheringStateChange = () => {
717
+ this.emit('@icegatheringstatechange', this._pc.iceGatheringState);
718
+ };
719
+ onIceCandidateError = (event) => {
720
+ this.emit('@icecandidateerror', event);
721
+ };
722
+ onConnectionStateChange = () => {
723
+ this.emit('@connectionstatechange', this._pc.connectionState);
724
+ };
725
+ onIceConnectionStateChange = () => {
726
+ switch (this._pc.iceConnectionState) {
727
+ case 'checking': {
728
+ this.emit('@connectionstatechange', 'connecting');
729
+ break;
730
+ }
731
+ case 'connected':
732
+ case 'completed': {
733
+ this.emit('@connectionstatechange', 'connected');
734
+ break;
735
+ }
736
+ case 'failed': {
737
+ this.emit('@connectionstatechange', 'failed');
738
+ break;
739
+ }
740
+ case 'disconnected': {
741
+ this.emit('@connectionstatechange', 'disconnected');
742
+ break;
743
+ }
744
+ case 'closed': {
745
+ this.emit('@connectionstatechange', 'closed');
746
+ break;
747
+ }
748
+ }
749
+ };
734
750
  assertNotClosed() {
735
751
  if (this._closed) {
736
752
  throw new errors_1.InvalidStateError('method called in a closed handler');