mediasoup-client 3.20.0 → 3.22.0
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/README.md +9 -0
- package/lib/Consumer.d.ts.map +1 -1
- package/lib/Consumer.js +3 -0
- package/lib/DataConsumer.d.ts.map +1 -1
- package/lib/DataConsumer.js +8 -1
- package/lib/DataProducer.d.ts.map +1 -1
- package/lib/DataProducer.js +8 -1
- package/lib/Device.d.ts +0 -8
- package/lib/Device.d.ts.map +1 -1
- package/lib/Device.js +36 -21
- package/lib/Logger.d.ts +1 -0
- package/lib/Logger.d.ts.map +1 -1
- package/lib/Logger.js +4 -1
- package/lib/Producer.d.ts.map +1 -1
- package/lib/Producer.js +3 -0
- package/lib/RtpParameters.d.ts.map +1 -1
- package/lib/SctpParameters.d.ts +9 -22
- package/lib/SctpParameters.d.ts.map +1 -1
- package/lib/Transport.d.ts +1 -1
- package/lib/Transport.d.ts.map +1 -1
- package/lib/Transport.js +85 -25
- package/lib/handlers/Chrome111.d.ts +1 -0
- package/lib/handlers/Chrome111.d.ts.map +1 -1
- package/lib/handlers/Chrome111.js +56 -20
- package/lib/handlers/Chrome74.d.ts +1 -0
- package/lib/handlers/Chrome74.d.ts.map +1 -1
- package/lib/handlers/Chrome74.js +56 -20
- package/lib/handlers/FakeHandler.d.ts +0 -2
- package/lib/handlers/FakeHandler.d.ts.map +1 -1
- package/lib/handlers/FakeHandler.js +35 -6
- package/lib/handlers/Firefox120.d.ts +1 -0
- package/lib/handlers/Firefox120.d.ts.map +1 -1
- package/lib/handlers/Firefox120.js +49 -15
- package/lib/handlers/HandlerInterface.d.ts +2 -3
- package/lib/handlers/HandlerInterface.d.ts.map +1 -1
- package/lib/handlers/ReactNative106.d.ts +1 -0
- package/lib/handlers/ReactNative106.d.ts.map +1 -1
- package/lib/handlers/ReactNative106.js +56 -20
- package/lib/handlers/Safari12.d.ts +1 -0
- package/lib/handlers/Safari12.d.ts.map +1 -1
- package/lib/handlers/Safari12.js +56 -20
- package/lib/handlers/fakeEvents/FakeEventListener.d.ts.map +1 -1
- package/lib/handlers/sdp/{MediaSection.d.ts → RemoteMediaSection.d.ts} +4 -4
- package/lib/handlers/sdp/RemoteMediaSection.d.ts.map +1 -0
- package/lib/handlers/sdp/{MediaSection.js → RemoteMediaSection.js} +47 -12
- package/lib/handlers/sdp/RemoteSdp.d.ts.map +1 -1
- package/lib/handlers/sdp/RemoteSdp.js +41 -8
- package/lib/handlers/sdp/commonUtils.js +34 -1
- package/lib/handlers/sdp/unifiedPlanUtils.d.ts.map +1 -1
- package/lib/index.d.ts +1 -1
- package/lib/index.js +42 -6
- package/lib/ortc.d.ts +1 -6
- package/lib/ortc.d.ts.map +1 -1
- package/lib/ortc.js +35 -34
- package/lib/test/fakeParameters.d.ts +0 -1
- package/lib/test/fakeParameters.d.ts.map +1 -1
- package/lib/test/fakeParameters.js +36 -10
- package/lib/test/test.js +39 -10
- package/npm-scripts.mjs +157 -36
- package/package.json +17 -15
- package/lib/handlers/sdp/MediaSection.d.ts.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Firefox120.d.ts","sourceRoot":"","sources":["../../src/handlers/Firefox120.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAKzD,OAAO,KAAK,EAAE,aAAa,EAAY,MAAM,cAAc,CAAC;AAY5D,OAAO,KAAK,EACX,cAAc,EACd,gBAAgB,EAChB,aAAa,EAGb,kBAAkB,EAClB,iBAAiB,EACjB,qBAAqB,EACrB,oBAAoB,EACpB,6BAA6B,EAC7B,4BAA4B,EAC5B,gCAAgC,EAChC,+BAA+B,EAC/B,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"Firefox120.d.ts","sourceRoot":"","sources":["../../src/handlers/Firefox120.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,24 +1,58 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
2
35
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
36
|
exports.Firefox120 = void 0;
|
|
4
|
-
const sdpTransform = require("sdp-transform");
|
|
37
|
+
const sdpTransform = __importStar(require("sdp-transform"));
|
|
5
38
|
const enhancedEvents_1 = require("../enhancedEvents");
|
|
6
39
|
const Logger_1 = require("../Logger");
|
|
7
40
|
const errors_1 = require("../errors");
|
|
8
|
-
const ortc = require("../ortc");
|
|
41
|
+
const ortc = __importStar(require("../ortc"));
|
|
9
42
|
const scalabilityModes_1 = require("../scalabilityModes");
|
|
10
43
|
const RemoteSdp_1 = require("./sdp/RemoteSdp");
|
|
11
|
-
const sdpCommonUtils = require("./sdp/commonUtils");
|
|
12
|
-
const sdpUnifiedPlanUtils = require("./sdp/unifiedPlanUtils");
|
|
13
|
-
const ortcUtils = require("./ortc/utils");
|
|
44
|
+
const sdpCommonUtils = __importStar(require("./sdp/commonUtils"));
|
|
45
|
+
const sdpUnifiedPlanUtils = __importStar(require("./sdp/unifiedPlanUtils"));
|
|
46
|
+
const ortcUtils = __importStar(require("./ortc/utils"));
|
|
14
47
|
const logger = new Logger_1.Logger('Firefox120');
|
|
15
48
|
const NAME = 'Firefox120';
|
|
16
|
-
const SCTP_NUM_STREAMS = { OS: 16, MIS: 2048 };
|
|
17
49
|
class Firefox120 extends enhancedEvents_1.EnhancedEventEmitter {
|
|
18
50
|
// Closed flag.
|
|
19
51
|
_closed = false;
|
|
20
52
|
// Handler direction.
|
|
21
53
|
_direction;
|
|
54
|
+
// DataChannel max receive message size.
|
|
55
|
+
_sctpMaxReceiveMessageSize;
|
|
22
56
|
// Remote SDP handler.
|
|
23
57
|
_remoteSdp;
|
|
24
58
|
// Callback to request sending extended RTP capabilities on demand.
|
|
@@ -102,12 +136,6 @@ class Firefox120 extends enhancedEvents_1.EnhancedEventEmitter {
|
|
|
102
136
|
throw error;
|
|
103
137
|
}
|
|
104
138
|
},
|
|
105
|
-
getNativeSctpCapabilities: async () => {
|
|
106
|
-
logger.debug('getNativeSctpCapabilities()');
|
|
107
|
-
return {
|
|
108
|
-
numStreams: SCTP_NUM_STREAMS,
|
|
109
|
-
};
|
|
110
|
-
},
|
|
111
139
|
};
|
|
112
140
|
}
|
|
113
141
|
static getLocalRtpCapabilities(localSdpObject) {
|
|
@@ -122,6 +150,8 @@ class Firefox120 extends enhancedEvents_1.EnhancedEventEmitter {
|
|
|
122
150
|
super();
|
|
123
151
|
logger.debug('constructor()');
|
|
124
152
|
this._direction = direction;
|
|
153
|
+
// NOTE: Mirror it.
|
|
154
|
+
this._sctpMaxReceiveMessageSize = sctpParameters?.maxSendMessageSize;
|
|
125
155
|
this._remoteSdp = new RemoteSdp_1.RemoteSdp({
|
|
126
156
|
iceParameters,
|
|
127
157
|
iceCandidates,
|
|
@@ -488,7 +518,7 @@ class Firefox120 extends enhancedEvents_1.EnhancedEventEmitter {
|
|
|
488
518
|
const dataChannel = this._pc.createDataChannel(sctpStreamParameters.label, options);
|
|
489
519
|
// Increase next id.
|
|
490
520
|
this._nextSendSctpStreamId =
|
|
491
|
-
++this._nextSendSctpStreamId %
|
|
521
|
+
++this._nextSendSctpStreamId % (this._pc.sctp?.maxChannels ?? 65536);
|
|
492
522
|
// If this is the first DataChannel we need to create the SDP answer with
|
|
493
523
|
// m=application section.
|
|
494
524
|
if (!this._hasDataChannelMediaSection) {
|
|
@@ -703,7 +733,9 @@ class Firefox120 extends enhancedEvents_1.EnhancedEventEmitter {
|
|
|
703
733
|
let answer = await this._pc.createAnswer();
|
|
704
734
|
const localSdpObject = sdpTransform.parse(answer.sdp);
|
|
705
735
|
const answerMediaObject = localSdpObject.media.find(m => m.type === 'application');
|
|
706
|
-
|
|
736
|
+
if (typeof maxMessageSize === 'number') {
|
|
737
|
+
answerMediaObject.maxMessageSize = maxMessageSize;
|
|
738
|
+
}
|
|
707
739
|
if (!this._transportReady) {
|
|
708
740
|
await this.setupTransport({ localDtlsRole: 'client', localSdpObject });
|
|
709
741
|
}
|
|
@@ -718,7 +750,9 @@ class Firefox120 extends enhancedEvents_1.EnhancedEventEmitter {
|
|
|
718
750
|
return { dataChannel };
|
|
719
751
|
}
|
|
720
752
|
getDataChannelMaxMessageSize() {
|
|
721
|
-
return this.
|
|
753
|
+
return this._direction === 'send'
|
|
754
|
+
? this._pc.sctp?.maxMessageSize
|
|
755
|
+
: this._sctpMaxReceiveMessageSize;
|
|
722
756
|
}
|
|
723
757
|
async setupTransport({ localDtlsRole, localSdpObject, }) {
|
|
724
758
|
if (!localSdpObject) {
|
|
@@ -3,12 +3,11 @@ import type { IceParameters, IceCandidate, DtlsParameters, IceGatheringState, Co
|
|
|
3
3
|
import type { ProducerCodecOptions, ProducerHeaderExtensionOptions, OnRtpSenderCallback } from '../Producer';
|
|
4
4
|
import type { OnRtpReceiverCallback } from '../Consumer';
|
|
5
5
|
import type { RtpCapabilities, RtpCodecCapability, RtpParameters, RtpEncodingParameters, ExtendedRtpCapabilities } from '../RtpParameters';
|
|
6
|
-
import type {
|
|
6
|
+
import type { SctpParameters, SctpStreamParameters } from '../SctpParameters';
|
|
7
7
|
export type HandlerFactory = {
|
|
8
8
|
name: string;
|
|
9
9
|
factory: (options: HandlerOptions) => HandlerInterface;
|
|
10
10
|
getNativeRtpCapabilities(options: HandlerGetNativeRtpCapabilitiesOptions): Promise<RtpCapabilities>;
|
|
11
|
-
getNativeSctpCapabilities(): Promise<SctpCapabilities>;
|
|
12
11
|
};
|
|
13
12
|
export type HandlerOptions = {
|
|
14
13
|
direction: 'send' | 'recv';
|
|
@@ -71,7 +70,7 @@ export type HandlerSendDataChannelResult = {
|
|
|
71
70
|
sctpStreamParameters: SctpStreamParameters;
|
|
72
71
|
};
|
|
73
72
|
export type HandlerReceiveDataChannelOptions = {
|
|
74
|
-
maxMessageSize
|
|
73
|
+
maxMessageSize?: number;
|
|
75
74
|
sctpStreamParameters: SctpStreamParameters;
|
|
76
75
|
label?: string;
|
|
77
76
|
protocol?: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HandlerInterface.d.ts","sourceRoot":"","sources":["../../src/handlers/HandlerInterface.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AACzD,OAAO,KAAK,EACX,aAAa,EACb,YAAY,EACZ,cAAc,EACd,iBAAiB,EACjB,eAAe,EACf,MAAM,cAAc,CAAC;AACtB,OAAO,KAAK,EACX,oBAAoB,EACpB,8BAA8B,EAC9B,mBAAmB,EACnB,MAAM,aAAa,CAAC;AACrB,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AACzD,OAAO,KAAK,EACX,eAAe,EACf,kBAAkB,EAClB,aAAa,EACb,qBAAqB,EACrB,uBAAuB,EACvB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"HandlerInterface.d.ts","sourceRoot":"","sources":["../../src/handlers/HandlerInterface.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,6 +4,7 @@ import type { HandlerFactory, HandlerInterface, HandlerEvents, HandlerSendOption
|
|
|
4
4
|
export declare class ReactNative106 extends EnhancedEventEmitter<HandlerEvents> implements HandlerInterface {
|
|
5
5
|
private _closed;
|
|
6
6
|
private _direction;
|
|
7
|
+
private _sctpMaxReceiveMessageSize?;
|
|
7
8
|
private _remoteSdp;
|
|
8
9
|
private _getSendExtendedRtpCapabilities;
|
|
9
10
|
private _forcedLocalDtlsRole?;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ReactNative106.d.ts","sourceRoot":"","sources":["../../src/handlers/ReactNative106.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAKzD,OAAO,KAAK,EAAE,aAAa,EAAY,MAAM,cAAc,CAAC;AAc5D,OAAO,KAAK,EACX,cAAc,EACd,gBAAgB,EAChB,aAAa,EAGb,kBAAkB,EAClB,iBAAiB,EACjB,qBAAqB,EACrB,oBAAoB,EACpB,6BAA6B,EAC7B,4BAA4B,EAC5B,gCAAgC,EAChC,+BAA+B,EAC/B,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"ReactNative106.d.ts","sourceRoot":"","sources":["../../src/handlers/ReactNative106.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,24 +1,58 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
2
35
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
36
|
exports.ReactNative106 = void 0;
|
|
4
|
-
const sdpTransform = require("sdp-transform");
|
|
37
|
+
const sdpTransform = __importStar(require("sdp-transform"));
|
|
5
38
|
const enhancedEvents_1 = require("../enhancedEvents");
|
|
6
39
|
const Logger_1 = require("../Logger");
|
|
7
|
-
const ortc = require("../ortc");
|
|
40
|
+
const ortc = __importStar(require("../ortc"));
|
|
8
41
|
const errors_1 = require("../errors");
|
|
9
42
|
const scalabilityModes_1 = require("../scalabilityModes");
|
|
10
43
|
const RemoteSdp_1 = require("./sdp/RemoteSdp");
|
|
11
|
-
const sdpCommonUtils = require("./sdp/commonUtils");
|
|
12
|
-
const sdpUnifiedPlanUtils = require("./sdp/unifiedPlanUtils");
|
|
13
|
-
const ortcUtils = require("./ortc/utils");
|
|
44
|
+
const sdpCommonUtils = __importStar(require("./sdp/commonUtils"));
|
|
45
|
+
const sdpUnifiedPlanUtils = __importStar(require("./sdp/unifiedPlanUtils"));
|
|
46
|
+
const ortcUtils = __importStar(require("./ortc/utils"));
|
|
14
47
|
const logger = new Logger_1.Logger('ReactNative106');
|
|
15
48
|
const NAME = 'ReactNative106';
|
|
16
|
-
const SCTP_NUM_STREAMS = { OS: 65535, MIS: 65535 };
|
|
17
49
|
class ReactNative106 extends enhancedEvents_1.EnhancedEventEmitter {
|
|
18
50
|
// Closed flag.
|
|
19
51
|
_closed = false;
|
|
20
52
|
// Handler direction.
|
|
21
53
|
_direction;
|
|
54
|
+
// DataChannel max receive message size.
|
|
55
|
+
_sctpMaxReceiveMessageSize;
|
|
22
56
|
// Remote SDP handler.
|
|
23
57
|
_remoteSdp;
|
|
24
58
|
// Callback to request sending extended RTP capabilities on demand.
|
|
@@ -76,12 +110,6 @@ class ReactNative106 extends enhancedEvents_1.EnhancedEventEmitter {
|
|
|
76
110
|
throw error;
|
|
77
111
|
}
|
|
78
112
|
},
|
|
79
|
-
getNativeSctpCapabilities: async () => {
|
|
80
|
-
logger.debug('getNativeSctpCapabilities()');
|
|
81
|
-
return {
|
|
82
|
-
numStreams: SCTP_NUM_STREAMS,
|
|
83
|
-
};
|
|
84
|
-
},
|
|
85
113
|
};
|
|
86
114
|
}
|
|
87
115
|
static getLocalRtpCapabilities(localSdpObject, extraHeaderExtensions = []) {
|
|
@@ -101,6 +129,8 @@ class ReactNative106 extends enhancedEvents_1.EnhancedEventEmitter {
|
|
|
101
129
|
super();
|
|
102
130
|
logger.debug('constructor()');
|
|
103
131
|
this._direction = direction;
|
|
132
|
+
// NOTE: Mirror it.
|
|
133
|
+
this._sctpMaxReceiveMessageSize = sctpParameters?.maxSendMessageSize;
|
|
104
134
|
this._remoteSdp = new RemoteSdp_1.RemoteSdp({
|
|
105
135
|
iceParameters,
|
|
106
136
|
iceCandidates,
|
|
@@ -221,11 +251,13 @@ class ReactNative106 extends enhancedEvents_1.EnhancedEventEmitter {
|
|
|
221
251
|
this._remoteSdp.setSessionExtmapAllowMixed();
|
|
222
252
|
}
|
|
223
253
|
const extraHeaderExtensions = [];
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
254
|
+
if (headerExtensionOptions?.absCaptureTime) {
|
|
255
|
+
extraHeaderExtensions.push({
|
|
256
|
+
uri: 'http://www.webrtc.org/experiments/rtp-hdrext/abs-capture-time',
|
|
257
|
+
kind: track.kind,
|
|
258
|
+
direction: 'sendonly',
|
|
259
|
+
});
|
|
260
|
+
}
|
|
229
261
|
const nativeRtpCapabilities = ReactNative106.getLocalRtpCapabilities(localSdpObject, extraHeaderExtensions);
|
|
230
262
|
const sendExtendedRtpCapabilities = this._getSendExtendedRtpCapabilities(nativeRtpCapabilities);
|
|
231
263
|
// Generic sending RTP parameters.
|
|
@@ -530,7 +562,7 @@ class ReactNative106 extends enhancedEvents_1.EnhancedEventEmitter {
|
|
|
530
562
|
const dataChannel = this._pc.createDataChannel(sctpStreamParameters.label, options);
|
|
531
563
|
// Increase next id.
|
|
532
564
|
this._nextSendSctpStreamId =
|
|
533
|
-
++this._nextSendSctpStreamId %
|
|
565
|
+
++this._nextSendSctpStreamId % (this._pc.sctp?.maxChannels ?? 65536);
|
|
534
566
|
// If this is the first DataChannel we need to create the SDP answer with
|
|
535
567
|
// m=application section.
|
|
536
568
|
if (!this._hasDataChannelMediaSection) {
|
|
@@ -754,7 +786,9 @@ class ReactNative106 extends enhancedEvents_1.EnhancedEventEmitter {
|
|
|
754
786
|
let answer = await this._pc.createAnswer();
|
|
755
787
|
const localSdpObject = sdpTransform.parse(answer.sdp);
|
|
756
788
|
const answerMediaObject = localSdpObject.media.find(m => m.type === 'application');
|
|
757
|
-
|
|
789
|
+
if (typeof maxMessageSize === 'number') {
|
|
790
|
+
answerMediaObject.maxMessageSize = maxMessageSize;
|
|
791
|
+
}
|
|
758
792
|
if (!this._transportReady) {
|
|
759
793
|
await this.setupTransport({
|
|
760
794
|
localDtlsRole: this._forcedLocalDtlsRole ?? 'client',
|
|
@@ -772,7 +806,9 @@ class ReactNative106 extends enhancedEvents_1.EnhancedEventEmitter {
|
|
|
772
806
|
return { dataChannel };
|
|
773
807
|
}
|
|
774
808
|
getDataChannelMaxMessageSize() {
|
|
775
|
-
return this.
|
|
809
|
+
return this._direction === 'send'
|
|
810
|
+
? this._pc.sctp?.maxMessageSize
|
|
811
|
+
: this._sctpMaxReceiveMessageSize;
|
|
776
812
|
}
|
|
777
813
|
async setupTransport({ localDtlsRole, localSdpObject, }) {
|
|
778
814
|
if (!localSdpObject) {
|
|
@@ -4,6 +4,7 @@ import type { HandlerFactory, HandlerInterface, HandlerEvents, HandlerOptions, H
|
|
|
4
4
|
export declare class Safari12 extends EnhancedEventEmitter<HandlerEvents> implements HandlerInterface {
|
|
5
5
|
private _closed;
|
|
6
6
|
private _direction;
|
|
7
|
+
private _sctpMaxReceiveMessageSize?;
|
|
7
8
|
private _remoteSdp;
|
|
8
9
|
private _getSendExtendedRtpCapabilities;
|
|
9
10
|
private _forcedLocalDtlsRole?;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Safari12.d.ts","sourceRoot":"","sources":["../../src/handlers/Safari12.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAKzD,OAAO,KAAK,EAAE,aAAa,EAAY,MAAM,cAAc,CAAC;AAa5D,OAAO,KAAK,EACX,cAAc,EACd,gBAAgB,EAChB,aAAa,EACb,cAAc,EAEd,kBAAkB,EAClB,iBAAiB,EACjB,qBAAqB,EACrB,oBAAoB,EACpB,6BAA6B,EAC7B,4BAA4B,EAC5B,gCAAgC,EAChC,+BAA+B,EAC/B,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"Safari12.d.ts","sourceRoot":"","sources":["../../src/handlers/Safari12.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAKzD,OAAO,KAAK,EAAE,aAAa,EAAY,MAAM,cAAc,CAAC;AAa5D,OAAO,KAAK,EACX,cAAc,EACd,gBAAgB,EAChB,aAAa,EACb,cAAc,EAEd,kBAAkB,EAClB,iBAAiB,EACjB,qBAAqB,EACrB,oBAAoB,EACpB,6BAA6B,EAC7B,4BAA4B,EAC5B,gCAAgC,EAChC,+BAA+B,EAC/B,MAAM,oBAAoB,CAAC;AAM5B,qBAAa,QACZ,SAAQ,oBAAoB,CAAC,aAAa,CAC1C,YAAW,gBAAgB;IAG3B,OAAO,CAAC,OAAO,CAAS;IAExB,OAAO,CAAC,UAAU,CAAkB;IAEpC,OAAO,CAAC,0BAA0B,CAAC,CAAS;IAE5C,OAAO,CAAC,UAAU,CAAY;IAE9B,OAAO,CAAC,+BAA+B,CAEV;IAG7B,OAAO,CAAC,oBAAoB,CAAC,CAAW;IAExC,OAAO,CAAC,GAAG,CAAoB;IAE/B,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CACxB;IAEX,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAqB;IAEjD,OAAO,CAAC,2BAA2B,CAAS;IAE5C,OAAO,CAAC,qBAAqB,CAAK;IAElC,OAAO,CAAC,eAAe,CAAS;IAEhC;;OAEG;IACH,MAAM,CAAC,aAAa,IAAI,cAAc;IA+CtC,OAAO,CAAC,MAAM,CAAC,uBAAuB;gBA4B1B,EACX,SAAS,EACT,aAAa,EACb,aAAa,EACb,cAAc,EACd,cAAc,EACd,UAAU,EACV,kBAAkB,EAClB,kBAAkB,EAClB,8BAA8B,GAC9B,EAAE,cAAc;IAmEjB,IAAI,IAAI,IAAI,MAAM,CAEjB;IAEQ,KAAK,IAAI,IAAI;IAqChB,gBAAgB,CAAC,UAAU,EAAE,YAAY,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAY3D,UAAU,CAAC,aAAa,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC;IAyDvD,iBAAiB,IAAI,OAAO,CAAC,cAAc,CAAC;IAM5C,IAAI,CAAC,EACV,KAAK,EACL,QAAQ,EACR,SAAS,EACT,YAAY,EACZ,sBAAsB,EACtB,KAAK,EACL,WAAW,GACX,EAAE,kBAAkB,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAgN5C,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAqD3C,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAqC5C,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAqC7C,YAAY,CACjB,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,gBAAgB,GAAG,IAAI,GAC5B,OAAO,CAAC,IAAI,CAAC;IAuBV,kBAAkB,CACvB,OAAO,EAAE,MAAM,EACf,YAAY,EAAE,MAAM,GAClB,OAAO,CAAC,IAAI,CAAC;IAsDV,wBAAwB,CAC7B,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,OAAO,CAAC,wBAAwB,CAAC,GACvC,OAAO,CAAC,IAAI,CAAC;IAkDV,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC;IAaxD,eAAe,CAAC,EACrB,oBAAoB,GACpB,EAAE,6BAA6B,GAAG,OAAO,CAAC,4BAA4B,CAAC;IA0ElE,OAAO,CACZ,WAAW,EAAE,qBAAqB,EAAE,GAClC,OAAO,CAAC,oBAAoB,EAAE,CAAC;IAyH5B,aAAa,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IA6ChD,cAAc,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAuCjD,eAAe,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAuClD,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC;IAa1D,kBAAkB,CAAC,EACxB,cAAc,EACd,oBAAoB,EACpB,KAAK,EACL,QAAQ,GACR,EAAE,gCAAgC,GAAG,OAAO,CAAC,+BAA+B,CAAC;IA4E9E,4BAA4B,IAAI,MAAM,GAAG,SAAS;YAMpC,cAAc;IAgC5B,OAAO,CAAC,yBAAyB,CAE/B;IAEF,OAAO,CAAC,mBAAmB,CAIzB;IAEF,OAAO,CAAC,uBAAuB,CAE7B;IAEF,OAAO,CAAC,0BAA0B,CAiChC;IAEF,OAAO,CAAC,eAAe;IAMvB,OAAO,CAAC,mBAAmB;IAQ3B,OAAO,CAAC,mBAAmB;CAO3B"}
|
package/lib/handlers/Safari12.js
CHANGED
|
@@ -1,24 +1,58 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
2
35
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
36
|
exports.Safari12 = void 0;
|
|
4
|
-
const sdpTransform = require("sdp-transform");
|
|
37
|
+
const sdpTransform = __importStar(require("sdp-transform"));
|
|
5
38
|
const enhancedEvents_1 = require("../enhancedEvents");
|
|
6
39
|
const Logger_1 = require("../Logger");
|
|
7
|
-
const ortc = require("../ortc");
|
|
40
|
+
const ortc = __importStar(require("../ortc"));
|
|
8
41
|
const errors_1 = require("../errors");
|
|
9
42
|
const scalabilityModes_1 = require("../scalabilityModes");
|
|
10
43
|
const RemoteSdp_1 = require("./sdp/RemoteSdp");
|
|
11
|
-
const sdpCommonUtils = require("./sdp/commonUtils");
|
|
12
|
-
const sdpUnifiedPlanUtils = require("./sdp/unifiedPlanUtils");
|
|
13
|
-
const ortcUtils = require("./ortc/utils");
|
|
44
|
+
const sdpCommonUtils = __importStar(require("./sdp/commonUtils"));
|
|
45
|
+
const sdpUnifiedPlanUtils = __importStar(require("./sdp/unifiedPlanUtils"));
|
|
46
|
+
const ortcUtils = __importStar(require("./ortc/utils"));
|
|
14
47
|
const logger = new Logger_1.Logger('Safari12');
|
|
15
48
|
const NAME = 'Safari12';
|
|
16
|
-
const SCTP_NUM_STREAMS = { OS: 65535, MIS: 65535 };
|
|
17
49
|
class Safari12 extends enhancedEvents_1.EnhancedEventEmitter {
|
|
18
50
|
// Closed flag.
|
|
19
51
|
_closed = false;
|
|
20
52
|
// Handler direction.
|
|
21
53
|
_direction;
|
|
54
|
+
// DataChannel max receive message size.
|
|
55
|
+
_sctpMaxReceiveMessageSize;
|
|
22
56
|
// Remote SDP handler.
|
|
23
57
|
_remoteSdp;
|
|
24
58
|
// Callback to request sending extended RTP capabilities on demand.
|
|
@@ -76,12 +110,6 @@ class Safari12 extends enhancedEvents_1.EnhancedEventEmitter {
|
|
|
76
110
|
throw error;
|
|
77
111
|
}
|
|
78
112
|
},
|
|
79
|
-
getNativeSctpCapabilities: async () => {
|
|
80
|
-
logger.debug('getNativeSctpCapabilities()');
|
|
81
|
-
return {
|
|
82
|
-
numStreams: SCTP_NUM_STREAMS,
|
|
83
|
-
};
|
|
84
|
-
},
|
|
85
113
|
};
|
|
86
114
|
}
|
|
87
115
|
static getLocalRtpCapabilities(localSdpObject, extraHeaderExtensions = []) {
|
|
@@ -101,6 +129,8 @@ class Safari12 extends enhancedEvents_1.EnhancedEventEmitter {
|
|
|
101
129
|
super();
|
|
102
130
|
logger.debug('constructor()');
|
|
103
131
|
this._direction = direction;
|
|
132
|
+
// NOTE: Mirror it.
|
|
133
|
+
this._sctpMaxReceiveMessageSize = sctpParameters?.maxSendMessageSize;
|
|
104
134
|
this._remoteSdp = new RemoteSdp_1.RemoteSdp({
|
|
105
135
|
iceParameters,
|
|
106
136
|
iceCandidates,
|
|
@@ -217,11 +247,13 @@ class Safari12 extends enhancedEvents_1.EnhancedEventEmitter {
|
|
|
217
247
|
this._remoteSdp.setSessionExtmapAllowMixed();
|
|
218
248
|
}
|
|
219
249
|
const extraHeaderExtensions = [];
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
250
|
+
if (headerExtensionOptions?.absCaptureTime) {
|
|
251
|
+
extraHeaderExtensions.push({
|
|
252
|
+
uri: 'http://www.webrtc.org/experiments/rtp-hdrext/abs-capture-time',
|
|
253
|
+
kind: track.kind,
|
|
254
|
+
direction: 'sendonly',
|
|
255
|
+
});
|
|
256
|
+
}
|
|
225
257
|
const nativeRtpCapabilities = Safari12.getLocalRtpCapabilities(localSdpObject, extraHeaderExtensions);
|
|
226
258
|
const sendExtendedRtpCapabilities = this._getSendExtendedRtpCapabilities(nativeRtpCapabilities);
|
|
227
259
|
// Generic sending RTP parameters.
|
|
@@ -491,7 +523,7 @@ class Safari12 extends enhancedEvents_1.EnhancedEventEmitter {
|
|
|
491
523
|
const dataChannel = this._pc.createDataChannel(sctpStreamParameters.label, options);
|
|
492
524
|
// Increase next id.
|
|
493
525
|
this._nextSendSctpStreamId =
|
|
494
|
-
++this._nextSendSctpStreamId %
|
|
526
|
+
++this._nextSendSctpStreamId % (this._pc.sctp?.maxChannels ?? 65536);
|
|
495
527
|
// If this is the first DataChannel we need to create the SDP answer with
|
|
496
528
|
// m=application section.
|
|
497
529
|
if (!this._hasDataChannelMediaSection) {
|
|
@@ -713,7 +745,9 @@ class Safari12 extends enhancedEvents_1.EnhancedEventEmitter {
|
|
|
713
745
|
let answer = await this._pc.createAnswer();
|
|
714
746
|
const localSdpObject = sdpTransform.parse(answer.sdp);
|
|
715
747
|
const answerMediaObject = localSdpObject.media.find(m => m.type === 'application');
|
|
716
|
-
|
|
748
|
+
if (typeof maxMessageSize === 'number') {
|
|
749
|
+
answerMediaObject.maxMessageSize = maxMessageSize;
|
|
750
|
+
}
|
|
717
751
|
if (!this._transportReady) {
|
|
718
752
|
await this.setupTransport({
|
|
719
753
|
localDtlsRole: this._forcedLocalDtlsRole ?? 'client',
|
|
@@ -731,7 +765,9 @@ class Safari12 extends enhancedEvents_1.EnhancedEventEmitter {
|
|
|
731
765
|
return { dataChannel };
|
|
732
766
|
}
|
|
733
767
|
getDataChannelMaxMessageSize() {
|
|
734
|
-
return this.
|
|
768
|
+
return this._direction === 'send'
|
|
769
|
+
? this._pc.sctp?.maxMessageSize
|
|
770
|
+
: this._sctpMaxReceiveMessageSize;
|
|
735
771
|
}
|
|
736
772
|
async setupTransport({ localDtlsRole, localSdpObject, }) {
|
|
737
773
|
if (!localSdpObject) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FakeEventListener.d.ts","sourceRoot":"","sources":["../../../src/handlers/fakeEvents/FakeEventListener.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAExC,MAAM,MAAM,sCAAsC,
|
|
1
|
+
{"version":3,"file":"FakeEventListener.d.ts","sourceRoot":"","sources":["../../../src/handlers/fakeEvents/FakeEventListener.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAExC,MAAM,MAAM,sCAAsC,GACjD,iBAAiB,GAAG,uBAAuB,CAAC;AAE7C,MAAM,WAAW,iBAAiB;IACjC,CAAC,GAAG,EAAE,SAAS,GAAG,IAAI,CAAC;CACvB;AAED,MAAM,WAAW,uBAAuB;IACvC,WAAW,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAAC;CACrC;AAED,MAAM,WAAW,2BAA2B;IAC3C,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,MAAM,CAAC,EAAE,WAAW,CAAC;CACrB;AAED,MAAM,WAAW,wBAAwB;IACxC,OAAO,CAAC,EAAE,OAAO,CAAC;CAClB"}
|
|
@@ -3,7 +3,7 @@ import type { IceParameters, IceCandidate, DtlsParameters, DtlsRole, PlainRtpPar
|
|
|
3
3
|
import type { ProducerCodecOptions } from '../../Producer';
|
|
4
4
|
import type { MediaKind, RtpParameters } from '../../RtpParameters';
|
|
5
5
|
import type { SctpParameters } from '../../SctpParameters';
|
|
6
|
-
export declare abstract class
|
|
6
|
+
export declare abstract class RemoteMediaSection {
|
|
7
7
|
protected readonly _mediaObject: SdpTransform.MediaDescription;
|
|
8
8
|
constructor({ iceParameters, iceCandidates, dtlsParameters, }: {
|
|
9
9
|
iceParameters?: IceParameters;
|
|
@@ -20,7 +20,7 @@ export declare abstract class MediaSection {
|
|
|
20
20
|
disable(): void;
|
|
21
21
|
close(): void;
|
|
22
22
|
}
|
|
23
|
-
export declare class
|
|
23
|
+
export declare class RemoteAnswerMediaSection extends RemoteMediaSection {
|
|
24
24
|
constructor({ iceParameters, iceCandidates, dtlsParameters, sctpParameters, plainRtpParameters, offerMediaObject, offerRtpParameters, answerRtpParameters, codecOptions, }: {
|
|
25
25
|
iceParameters?: IceParameters;
|
|
26
26
|
iceCandidates?: IceCandidate[];
|
|
@@ -36,7 +36,7 @@ export declare class AnswerMediaSection extends MediaSection {
|
|
|
36
36
|
resume(): void;
|
|
37
37
|
muxSimulcastStreams(encodings: RTCRtpEncodingParameters[]): void;
|
|
38
38
|
}
|
|
39
|
-
export declare class
|
|
39
|
+
export declare class RemoteOfferMediaSection extends RemoteMediaSection {
|
|
40
40
|
constructor({ iceParameters, iceCandidates, dtlsParameters, sctpParameters, plainRtpParameters, mid, kind, offerRtpParameters, streamId, trackId, }: {
|
|
41
41
|
iceParameters?: IceParameters;
|
|
42
42
|
iceCandidates?: IceCandidate[];
|
|
@@ -52,4 +52,4 @@ export declare class OfferMediaSection extends MediaSection {
|
|
|
52
52
|
setDtlsRole(role: DtlsRole): void;
|
|
53
53
|
resume(): void;
|
|
54
54
|
}
|
|
55
|
-
//# sourceMappingURL=
|
|
55
|
+
//# sourceMappingURL=RemoteMediaSection.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RemoteMediaSection.d.ts","sourceRoot":"","sources":["../../../src/handlers/sdp/RemoteMediaSection.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,YAAY,MAAM,eAAe,CAAC;AAEnD,OAAO,KAAK,EACX,aAAa,EACb,YAAY,EACZ,cAAc,EACd,QAAQ,EACR,kBAAkB,EAClB,MAAM,iBAAiB,CAAC;AACzB,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AAC3D,OAAO,KAAK,EACX,SAAS,EACT,aAAa,EAGb,MAAM,qBAAqB,CAAC;AAC7B,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAE3D,8BAAsB,kBAAkB;IAEvC,SAAS,CAAC,QAAQ,CAAC,YAAY,EAAE,YAAY,CAAC,gBAAgB,CAAC;gBAEnD,EACX,aAAa,EACb,aAAa,EACb,cAAc,GACd,EAAE;QACF,aAAa,CAAC,EAAE,aAAa,CAAC;QAC9B,aAAa,CAAC,EAAE,YAAY,EAAE,CAAC;QAC/B,cAAc,CAAC,EAAE,cAAc,CAAC;KAChC;IAmDD,QAAQ,CAAC,WAAW,CAAC,IAAI,EAAE,QAAQ,GAAG,IAAI;IAE1C,IAAI,GAAG,IAAI,MAAM,CAEhB;IAED,IAAI,MAAM,IAAI,OAAO,CAEpB;IAED,SAAS,IAAI,YAAY,CAAC,gBAAgB;IAI1C,gBAAgB,CAAC,aAAa,EAAE,aAAa,GAAG,IAAI;IAKpD,KAAK,IAAI,IAAI;IAIb,QAAQ,CAAC,MAAM,IAAI,IAAI;IAEvB,OAAO,IAAI,IAAI;IAIf,KAAK,IAAI,IAAI;CAuBb;AAED,qBAAa,wBAAyB,SAAQ,kBAAkB;gBACnD,EACX,aAAa,EACb,aAAa,EACb,cAAc,EACd,cAAc,EACd,kBAAkB,EAClB,gBAAgB,EAChB,kBAAkB,EAClB,mBAAmB,EACnB,YAAY,GACZ,EAAE;QACF,aAAa,CAAC,EAAE,aAAa,CAAC;QAC9B,aAAa,CAAC,EAAE,YAAY,EAAE,CAAC;QAC/B,cAAc,CAAC,EAAE,cAAc,CAAC;QAChC,cAAc,CAAC,EAAE,cAAc,CAAC;QAChC,kBAAkB,CAAC,EAAE,kBAAkB,CAAC;QACxC,gBAAgB,EAAE,YAAY,CAAC,gBAAgB,CAAC;QAChD,kBAAkB,CAAC,EAAE,aAAa,CAAC;QACnC,mBAAmB,CAAC,EAAE,aAAa,CAAC;QACpC,YAAY,CAAC,EAAE,oBAAoB,CAAC;KACpC;IAkQD,WAAW,CAAC,IAAI,EAAE,QAAQ,GAAG,IAAI;IAsBjC,MAAM,IAAI,IAAI;IAId,mBAAmB,CAAC,SAAS,EAAE,wBAAwB,EAAE,GAAG,IAAI;CA6BhE;AAED,qBAAa,uBAAwB,SAAQ,kBAAkB;gBAClD,EACX,aAAa,EACb,aAAa,EACb,cAAc,EACd,cAAc,EACd,kBAAkB,EAClB,GAAG,EACH,IAAI,EACJ,kBAAkB,EAClB,QAAQ,EACR,OAAO,GACP,EAAE;QACF,aAAa,CAAC,EAAE,aAAa,CAAC;QAC9B,aAAa,CAAC,EAAE,YAAY,EAAE,CAAC;QAC/B,cAAc,CAAC,EAAE,cAAc,CAAC;QAChC,cAAc,CAAC,EAAE,cAAc,CAAC;QAChC,kBAAkB,CAAC,EAAE,kBAAkB,CAAC;QACxC,GAAG,EAAE,MAAM,CAAC;QACZ,IAAI,EAAE,SAAS,GAAG,aAAa,CAAC;QAEhC,kBAAkB,CAAC,EAAE,aAAa,CAAC;QACnC,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,OAAO,CAAC,EAAE,MAAM,CAAC;KACjB;IA+ID,WAAW,CAAC,IAAI,EAAE,QAAQ,GAAG,IAAI;IAKjC,MAAM,IAAI,IAAI;CAGd"}
|